目标结帐页面但不是 Woocommerce 中的订单接收页面

Target checkout page but not order-received page in Woocommerce

我在 functions.php 中以这种方式链接一些 .js:

if(get_query_var('pagename')==='checkout') {
    wp_enqueue_script('script', 'my.js', array('jquery'), 1.1, true);
}

my.js 是我检查一些结帐表单输入字段的地方。
现在我看到 my.js 也在订单接收页面中链接(我知道这是结帐页面的 'sub-page'!),这会导致一些错误,因为结帐表格不存在没有了。

如何在结帐页面有条件地执行一些代码,而不是在收到订单的页面中?

谢谢。

尝试使用 is_checkout_pay_page() 函数:

if(is_checkout_pay_page()) {
    wp_enqueue_script('script', 'my.js', array('jquery'), 1.1, true);
}

要定位结帐页面 避免 "order-received" 或 "order-pay" 端点 使用:

if( is_checkout() && ! ( is_wc_endpoint_url( 'order-pay' ) || is_wc_endpoint_url( 'order-received' ) ) ) {
    wp_enqueue_script('script', 'my.js', array('jquery'), 1.1, true);
}

经过测试并可以正常工作。