我正在尝试在模式窗口中实现结帐功能(使用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的请求,只是对签出的请求。也许每次刷新结帐时都需要包含一些脚本?找不到有关它的任何信息。
我们可以通过EasyDigitalDownloads插件执行此操作吗?主题:EDD PopUp Checkout