自定义Buy the Original链接无法添加商品至购物车,购物车为空
问题原因及修复方案
你的代码无法将商品加入购物车的核心问题是:错误地使用了商品名称作为添加购物车的参数值,WooCommerce的add-to-cart参数需要接收的是商品ID,而非商品名称。
修正后的代码
add_action( 'woocommerce_before_add_to_cart_button', 'custom_buy_original_link' ); function custom_buy_original_link() { global $product; if ( is_product() ) { $product_id = $product->get_id(); // 获取商品ID(替换原有的商品名称) echo '<a href="' . esc_url( wc_get_cart_url() ) . '?add-to-cart=' . esc_attr( $product_id ) . '">Buy the Original</a>'; } }
关键改动说明
- 替换
$product->get_name()为$product->get_id(),获取正确的商品标识符 - 保持
add-to-cart参数(这是WooCommerce标准的添加购物车参数,和你示例里的product_id效果一致,两种参数都能触发添加动作) - 用
esc_attr()对商品ID进行转义,确保输出的链接安全合规
修正后,点击链接就能正常将对应商品加入购物车并跳转到购物车页面。
内容的提问来源于stack exchange,提问作者mlsatya
相关产品推荐
相关产品推荐

