php - 可变产品的“添加到购物车”功能而不是“选择选项”按钮行为
问题描述
Woocommerce 在产品循环中有两种按钮类型
- “添加到购物车”用于将简单产品添加到购物车
- “选择选项”,如果一个简单的产品变成一个变量或一个订阅选项被添加。
我的设置:
使用以下插件将所有 Woocommerce 产品同时配置为简单产品和订阅产品
- “Woocommerce 订阅”
- “Woocommerce 订阅的所有产品”。默认设置为简单产品。
现在所有产品上的按钮都从“添加到购物车”变为“选择选项”。这是 Woocommerce 的默认行为。
我的问题:
尽管有可变产品,如何保留“添加到购物车”按钮及其将简单产品添加到购物车的功能?
背后的逻辑:用户有机会在结账时做出选择,因此需要添加到购物车功能,而不是重定向到单个产品页面来做出选择。
解决方案
您可以使用:(通过代码中添加的注释标签进行解释)
function filter_woocommerce_loop_add_to_cart_link( $args, $product ) {
// Shop page & product type = simple
if ( is_shop() && $product->product_type === 'simple' ) {
// Get product ID, sku & add to cart url
$product_id = $product->get_id();
$product_sku = $product->get_sku();
$product_url = $product->add_to_cart_url();
// Quantity & text
$quantity = isset( $args['quantity'] ) ? $args['quantity'] : 1;
$text = $product->add_to_cart_text();
$args = '<a rel="nofollow" href="' . $product_url . '" data-quantity="' . $quantity . '" data-product_id="' . $product_id . '" data-product_sku="' . $product_sku . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart" aria-label="Add to cart"><em>' . $text . '</em></a>';
}
return $args;
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_woocommerce_loop_add_to_cart_link', 10, 2 );
推荐阅读
- c - 为什么 valgrind 报告未初始化的值错误?
- python - 用 celery 运行线程模块;守护进程不允许有子进程
- javascript - 如何在 ASP.NET 核心 Web 应用程序中禁用客户端验证?
- python - 使用 Tensorflow 格式化具有可变时间步长的 LSTM 层的输入
- python - discord.py 重写 | 为我的命令出错
- php - 从 blob 重建 jpg
- javascript - 如何使用 Material-UI 将多个 TextField 元素放入 Grid 容器中?
- android - webview中base64图像的低分辨率
- c++ - 从字符串转换为浮点数时丢失文件中的第一行元素
- elm - 这个 Elm 函数的正确类型注释是什么?