__( 'STOREFRONT', 'agentic-commerce-for-woocommerce' ),
'title' => __( 'What shoppers actually see', 'agentic-commerce-for-woocommerce' ),
'sub' => __( 'Almost everything this plugin adds is invisible — structured data an assistant reads and a shopper never notices. These are the exceptions, and each one is off until you turn it on.', 'agentic-commerce-for-woocommerce' ),
)
);
self::visible_surfaces();
self::invisible_surfaces();
Xpay_UI::close();
}
/**
* The merchant-visible surfaces and their real state.
*
* @return void
*/
private static function visible_surfaces() {
Xpay_UI::section(
__( 'Visible on your store', 'agentic-commerce-for-woocommerce' ),
__( 'Each of these changes what a shopper sees, so each is off unless you asked for it.', 'agentic-commerce-for-woocommerce' )
);
echo '
';
// Storefront assistant.
$widget_on = class_exists( 'Xpay_Plugin' ) && method_exists( 'Xpay_Plugin', 'is_storefront_widget_entitled' )
? (bool) Xpay_Plugin::is_storefront_widget_entitled()
: false;
Xpay_UI::check(
$widget_on ? 'pass' : 'low',
__( 'AI storefront assistant', 'agentic-commerce-for-woocommerce' ),
$widget_on
? __( 'The on-site chat is active. It answers from your own catalog. To switch it off, use the control in your xpay dashboard — it takes effect immediately, without a plugin update.', 'agentic-commerce-for-woocommerce' )
: __( 'Not showing on your store. It appears only after you explicitly ask for it — having access to it is not the same as having agreed to display it.', 'agentic-commerce-for-woocommerce' ),
Xpay_Admin::app_url( 'storefront-assistant' ),
$widget_on ? __( 'Manage', 'agentic-commerce-for-woocommerce' ) : __( 'Learn more', 'agentic-commerce-for-woocommerce' )
);
// Product FAQ block.
$faq_visible = get_option( 'xpay_wc_faq_visible', null );
$faq_on = ! empty( $faq_visible );
Xpay_UI::check(
$faq_on ? 'pass' : 'low',
__( 'Product FAQ block', 'agentic-commerce-for-woocommerce' ),
$faq_on
? __( 'Approved questions and answers are shown on your product pages. The answers are also published as structured data either way.', 'agentic-commerce-for-woocommerce' )
: __( 'Off. Approved answers are still published as structured data for AI shoppers and search engines — you simply do not render them on the page.', 'agentic-commerce-for-woocommerce' ),
Xpay_Admin::app_url( 'product-faqs' ),
__( 'Manage', 'agentic-commerce-for-woocommerce' )
);
// Full-page shop assistant.
$assist_page = get_option( 'xpay_wc_shop_assist_page_id', 0 );
Xpay_UI::check(
$assist_page ? 'pass' : 'low',
__( 'Full-page shopping assistant', 'agentic-commerce-for-woocommerce' ),
$assist_page
? __( 'A dedicated page exists on your site. It is not added to your menu unless you choose to add it.', 'agentic-commerce-for-woocommerce' )
: __( 'Not created. This is a separate page a shopper can browse your catalog from conversationally.', 'agentic-commerce-for-woocommerce' )
);
echo '
';
Xpay_UI::note(
'info',
'' . esc_html__( 'Nothing appears on your storefront without you asking for it.', 'agentic-commerce-for-woocommerce' ) . ' '
. esc_html__( 'Having access to a feature and agreeing to display it are two different decisions, and we treat them that way. Each control above opens where you can switch it off, and that takes effect straight away without a plugin update.', 'agentic-commerce-for-woocommerce' )
);
}
/**
* The invisible layer, so a merchant can see it exists.
*
* @return void
*/
private static function invisible_surfaces() {
Xpay_UI::section(
__( 'Invisible to shoppers, read by assistants', 'agentic-commerce-for-woocommerce' ),
__( 'This is the bulk of what the plugin does. None of it changes how your pages look.', 'agentic-commerce-for-woocommerce' )
);
echo '';
$items = array(
array( __( 'Product structured data', 'agentic-commerce-for-woocommerce' ), __( 'Prices, stock and buy actions in the format assistants parse. We check what Yoast or Rank Math already publish and add only what is missing.', 'agentic-commerce-for-woocommerce' ) ),
array( __( 'AI crawler allowlist', 'agentic-commerce-for-woocommerce' ), __( 'Where WordPress controls your robots.txt, the AI shopping crawlers are named explicitly — and rules you already had are never overridden. The dashboard tells you if something is blocking it.', 'agentic-commerce-for-woocommerce' ) ),
array( __( 'Catalog discovery files', 'agentic-commerce-for-woocommerce' ), __( 'A machine-readable summary of your store at a standard location. If you already publish one, we append rather than replace.', 'agentic-commerce-for-woocommerce' ) ),
array( __( 'Cart deep links', 'agentic-commerce-for-woocommerce' ), __( 'An assistant can hand a shopper a pre-filled cart that lands on your existing checkout, untouched.', 'agentic-commerce-for-woocommerce' ) ),
array( __( 'Return policy data', 'agentic-commerce-for-woocommerce' ), __( 'Delivery and returns answered in structured form, which is what shoppers ask assistants about most.', 'agentic-commerce-for-woocommerce' ) ),
array( __( 'Live inventory sync', 'agentic-commerce-for-woocommerce' ), __( 'Stock and price changes propagate within about thirty seconds, so an assistant never recommends something you cannot ship.', 'agentic-commerce-for-woocommerce' ) ),
);
foreach ( $items as $i ) {
echo '
' . esc_html( $i[0] ) . '
' . esc_html( $i[1] ) . '
';
}
echo '
';
}
}