默认的woocommerce精选产品只有加入购物车这个按钮,现在自定义添加一个可直接下单的按钮,跳过添加购物车的过程,步骤如下:

1. PHP 代码 - 添加商品到购物车并跳转到结账页面

你可以在 Code Snippets 插件中添加以下 PHP 代码:

  • 创建一个新片段
    • 进入 WordPress 后台,点击 Code Snippets > Add New
    • 将下面的 PHP 代码粘贴到片段内容中。
    • add_action('wp_ajax_add_quick_buy_to_cart', 'add_quick_buy_to_cart');
      add_action('wp_ajax_nopriv_add_quick_buy_to_cart', 'add_quick_buy_to_cart');

      function add_quick_buy_to_cart() {
          $product_id = intval($_POST['product_id']);

          if ($product_id) {
              // 将商品添加到购物车
              WC()->cart->add_to_cart($product_id);
          }

          // 返回购物车页面的 URL,或者结账页面的 URL
          wp_send_json_success(array(
              'redirect_url' => wc_get_checkout_url() // 添加到购物车后,跳转到结账页面
          ));
      }
       

2. JavaScript 代码 - 使用 AJAX 处理 Buy Now 按钮

你需要在前端添加 JavaScript 代码来处理 Buy Now 按钮点击事件,确保商品添加到购物车并跳转到结账页面。

  • 通过 Code Snippets 插件添加 JavaScript
    • 如果你的 Code Snippets 插件支持 JavaScript,你可以直接添加 JavaScript 代码。
    • 否则,你可以通过一个额外的 HTML 片段(<script> 标签)来添加 JavaScript
    • jQuery(function($) {
          // 处理 "Buy Now" 按钮点击事件
          $('body').on('click', '.quick-buy-button', function(e) {
              e.preventDefault(); // 防止默认跳转

              var productId = $(this).data('product_id'); // 获取产品 ID

              // 使用 AJAX 请求将产品添加到购物车
              $.ajax({
                  url: wc_add_to_cart_params.ajax_url, // WooCommerce AJAX 处理 URL
                  type: 'POST',
                  data: {
                      action: 'add_quick_buy_to_cart',
                      product_id: productId
                  },
                  success: function(response) {
                      // 在商品成功添加到购物车后,跳转到结账页面
                      if (response.success) {
                          window.location.href = response.data.redirect_url; // 重定向到结账页面
                      }
                  }
              });
          });
      });

3. 添加 Buy Now 按钮的 HTML 结构

在 Code Snippets 插件中添加 HTML 代码:

你可以使用 Code Snippets 插件中的 PHP 片段 来修改 Buy Now 按钮的 HTML。

修改后的 HTML 输出:

add_action('woocommerce_after_shop_loop_item', 'add_quick_buy_button', 15);

function add_quick_buy_button() {
    global $product;
    if ($product->is_featured()) { // 检查是否为精选产品
        $product_id = $product->get_id();
        $checkout_url = wc_get_checkout_url();

        // 包裹两个按钮的容器
        echo '<div class="buttons-wrapper">';

        // 输出 "Add to Cart" 按钮
        echo '<a href="?add-to-cart=' . $product_id . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart" data-product_id="' . $product_id . '" data-product_name="' . $product->get_name() . '" data-price="' . $product->get_price() . '">Add to cart</a>';

        // 输出 "Buy Now" 按钮,添加 data-product_id
        echo '<a href="#" class="button quick-buy-button" data-product_id="' . $product_id . '">Buy Now</a>';

        // 关闭容器
        echo '</div>';
    }
}

 

有什么问题欢迎评论私信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值