Custom购买现在的按钮不重新定向到WooCommerce中的结帐页面

问题描述 投票:0回答:1

i我在单个产品页面上放置了一个自定义代码,以便在单个产品页面上使用add按钮,以便在任何产品上快速购买。但这不是重定向到结帐页面,像默认的woocommerce这样的反应 我在ocean themep functions.php文件中使用的代码是: function sbw_wc_add_buy_now_button_single() { global $product; printf('<button id="sbw_wc-adding-button" type="submit" name="sbw-wc-buy-now" value="%d" class="single_add_to_cart_button buy_now_button button alt">%s</button>', $product->get_ID(), esc_html__('Buy Now', 'sbw-wc')); } add_action('woocommerce_after_add_to_cart_button', 'sbw_wc_add_buy_now_button_single'); // Handle for click on buy now function sbw_wc_handle_buy_now() { if (!isset($_REQUEST['sbw-wc-buy-now'])) { return false; } WC()->cart->empty_cart(); $product_id = absint($_REQUEST['sbw-wc-buy-now']); $quantity = absint($_REQUEST['quantity']); if (isset($_REQUEST['variation_id'])) { $variation_id = absint($_REQUEST['variation_id']); WC()->cart->add_to_cart($product_id, 1, $variation_id); } else { WC()->cart->add_to_cart($product_id, $quantity); } wp_safe_redirect(wc_get_checkout_url()); exit; } add_action('wp_loaded', 'sbw_wc_handle_buy_now');

// Add "Buy Now" button after the "Add to Cart" button function sbw_wc_add_buy_now_button_single() { global $product; if (!$product || !is_a($product, 'WC_Product')) { return; } printf( '<button id="sbw_wc-buy-now-button" type="button" data-product-id="%d" class="single_add_to_cart_button buy_now_button button alt">%s</button>', esc_attr($product->get_ID()), esc_html__('Buy Now', 'sbw-wc') ); } add_action('woocommerce_after_add_to_cart_button', 'sbw_wc_add_buy_now_button_single'); // Handle Buy Now request function sbw_wc_handle_buy_now() { if (!isset($_POST['sbw-wc-buy-now'])) { return; } WC()->cart->empty_cart(); $product_id = absint($_POST['sbw-wc-buy-now']); $quantity = isset($_POST['quantity']) ? absint($_POST['quantity']) : 1; $variation_id = isset($_POST['variation_id']) ? absint($_POST['variation_id']) : 0; if ($variation_id) { WC()->cart->add_to_cart($product_id, $quantity, $variation_id); } else { WC()->cart->add_to_cart($product_id, $quantity); } wp_send_json_success(['redirect' => wc_get_checkout_url()]); exit; } add_action('wp_ajax_sbw_wc_handle_buy_now', 'sbw_wc_handle_buy_now'); add_action('wp_ajax_nopriv_sbw_wc_handle_buy_now', 'sbw_wc_handle_buy_now');

jQuery(document).ready(function ($) {
    $('#sbw_wc-buy-now-button').on('click', function () {
        var productID = $(this).attr('data-product-id');
        var quantity = $('input[name="quantity"]').val() || 1;
        var variationID = $('input[name="variation_id"]').val() || 0;

        $.ajax({
            type: 'POST',
            url: wc_add_to_cart_params.ajax_url,
            data: {
                action: 'sbw_wc_handle_buy_now',
                sbw-wc-buy-now: productID,
                quantity: quantity,
                variation_id: variationID,
            },
            success: function (response) {
                if (response.success && response.redirect) {
                    window.location.href = response.redirect;
                }
            },
        });
    });
});
php woocommerce product woocommerce-subscriptions
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.