如何为WooCommerce创建类似速卖通的「立即购买」直达购物车链接
在WooCommerce中创建「立即购买」直达结账链接
要实现类似速卖通的「立即购买」效果,即点击链接直接将指定商品(1件)加入购物车并跳转到结账页面,可通过以下几种方法实现:
方法1:手动构造链接(无需代码)
这是最直接的方式,利用WooCommerce原生的URL参数即可生成链接,格式如下:
https://你的店铺域名/checkout/?add-to-cart=产品ID
- 获取产品ID:在WooCommerce后台的「产品」列表中,每个产品标题旁会显示ID;或编辑产品时,查看浏览器地址栏中的
post=XXX参数,XXX就是产品ID。 - 指定数量:默认添加1件商品,若需调整数量,可追加参数
&quantity=N(N为数量),比如:https://你的店铺域名/checkout/?add-to-cart=123&quantity=2 - 变量产品处理:若为变量产品,需使用变体ID替代产品ID,变体ID可在产品编辑页面的「变体」选项中查看,链接格式不变。
方法2:自定义短代码生成按钮
若需要在页面、文章或产品描述中快速插入「立即购买」按钮,可在主题的functions.php文件(建议用子主题文件,避免主题更新丢失代码)中添加以下代码:
function wc_quick_buy_shortcode( $atts ) { // 设置短代码默认参数 $atts = shortcode_atts( array( 'id' => '', 'text' => '立即购买' ), $atts ); // 验证产品ID是否有效 if ( empty( $atts['id'] ) || !wc_get_product( $atts['id'] ) ) { return ''; } // 生成直达结账的链接 $buy_url = wc_get_checkout_url() . '?add-to-cart=' . $atts['id']; // 返回按钮HTML return '<a href="' . esc_url( $buy_url ) . '" class="button alt">' . esc_html( $atts['text'] ) . '</a>'; } add_shortcode( 'quick_buy', 'wc_quick_buy_shortcode' );
使用时,只需在编辑器中插入短代码即可,示例:
[quick_buy id="123" text="立即下单"]
方法3:自动在产品页面添加「立即购买」按钮
若希望每个产品页面的「加入购物车」按钮旁自动显示「立即购买」按钮,可添加以下代码到主题的functions.php:
function add_quick_buy_button() { global $product; // 仅对简单产品和变量产品生效 if ( !$product->is_type( array( 'simple', 'variable' ) ) ) { return; } // 生成链接(变量产品需确保用户已选择变体,若未选择,点击后会提示选择) $buy_url = wc_get_checkout_url() . '?add-to-cart=' . $product->get_id(); echo '<a href="' . esc_url( $buy_url ) . '" class="button quick-buy" style="margin-left: 10px;">立即购买</a>'; } add_action( 'woocommerce_after_add_to_cart_button', 'add_quick_buy_button' );
注意事项
- 测试链接有效性:点击生成的链接后,确认商品已成功加入购物车并跳转到结账页面。
- 变量产品特殊处理:若用户未选择变体直接点击链接,WooCommerce会提示选择变体,可配合变体选择脚本优化体验,但基础链接已满足核心需求。
- 主题兼容性:部分主题可能修改了产品模板,若按钮不显示,可调整钩子位置(比如
woocommerce_single_product_summary)。
内容的提问来源于stack exchange,提问作者Denis Marcinkov
相关产品推荐
相关产品推荐

