小编Dmi*_*yka的帖子

弹出窗口中的Woocommerce结帐

我正在尝试在模式窗口中实现结帐功能(使用WooCommerce Stripe Payment Gateway插件实现+条带),并且为此使用了ajax。这是我的后端代码,用于获取/刷新结帐:

add_action('wp_ajax_refresh_checkout', 'getCheckoutPageContentCallBack');
add_action('wp_ajax_nopriv_refresh_checkout', 'getCheckoutPageContentCallBack');

function getCheckoutPageContentCallBack() {
    define('WOOCOMMERCE_CHECKOUT', true);
    echo do_shortcode('[woocommerce_checkout]');
    if (class_exists('WooCommerce')) {
        $wcurl = WooCommerce::plugin_url();

        $credit_card_form_script = file_get_contents($wcurl . '/assets/js/frontend/credit-card-form.min.js');
        if ($credit_card_form_script) {
            echo "<script>";
            echo $credit_card_form_script;
            echo "</script>";
        }

        $checkout_script = file_get_contents($wcurl . '/assets/js/frontend/checkout.min.js');
        if ($checkout_script) {
            echo "<script>";
            echo $checkout_script;
            echo "</script>";
        }
    }
    wp_die();
}
Run Code Online (Sandbox Code Playgroud)

我包括了检出页面具有的所有脚本,但仍然收到错误:

请输入您的卡信息以付款。开发人员:请确保您包括jQuery,并且页面上没有JavaScript错误。

包含jQuery,并且页面上没有js错误。原始的结帐页面工作正常。我以为问题是我通过以下代码从原始部分中删除了付款部分:

remove_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20);
add_action('woocommerce_checkout_order_payment', 'woocommerce_checkout_payment', 20);
Run Code Online (Sandbox Code Playgroud)

但是评论这些话对我没有任何帮助。我编辑了页面,所以现在甚至都不是商店页面(只是带有循环的页面)。我注意到,通过“结帐”页面付款时,第一个请求转到带有卡凭据的https://api.stripe.com/v1/tokens,下一个请求转到带有stripe_token的/ checkout /?wc-ajax = checkout和所以。当我尝试从模式中签出时,没有对sripe API的请求,只是对签出的请求。也许每次刷新结帐时都需要包含一些脚本?找不到有关它的任何信息。

wordpress checkout modal-dialog stripe-payments woocommerce

5
推荐指数
0
解决办法
1918
查看次数