我试图在模态窗口中实现结帐功能(+带有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();
}
我包含了结帐页面的所有脚本,但仍然收到错误:
请输入您的信用卡详细信息以进行付款。开发人员:请确保您包含jQuery,并且页面上没有JavaScript错误。
包含jQuery,页面上没有js错误。原始结帐页面工作得很好。我认为问题在于我通过以下代码从原始部分删除了付款部分:
remove_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20);
add_action('woocommerce_checkout_order_payment', 'woocommerce_checkout_payment', 20);
但评论这些线条并没有给我什么。我编辑了这个页面,所以现在这不是商店页面(只是一个带循环的页面)。 我注意到,通过结帐页面进行付款时,第一个请求带有卡凭据进入https://api.stripe.com/v1/tokens,下一个请求使用stripe_token进入/ checkout /?wc-ajax = checkout等等。当我尝试从我的模态结账时,没有请求sripe API,只是结账。也许每次刷新结账时都需要包含一些脚本?无法找到有关它的任何信息。