标签: variable-product

Woocommerce 如何使用自定义 html 单选按钮而不是下拉菜单来 ajaxify 添加到可变产品的购物车按钮 - 无插件

我正在尝试将这个难题的所有部分拼凑在一起。在过去的三天里,我一直在阅读有关此主题的所有问题和答案。所以我遵循的总体蓝图如下:

  1. 在单个商品页面,首先检查商品类型是“简单”还是“可变”。
  2. 如果产品是“变量”,那么我将使用woocommerce_variable_add_to_cart();函数来输出正确的 html。
  3. 然后尝试使用默认 html(即“下拉菜单”)和 woocommerce 挂钩生成新的自定义 html(即“单选按钮”)。
  4. 然后尝试使用 javascript 为新的自定义 html(即“单选按钮”)提供功能。
  5. 然后使用 css 隐藏默认下拉菜单。
  6. 然后尝试向 wordpress 发送 ajax 请求。
  7. 然后尝试在后端处理该 ajax 请求并将产品添加到购物车。

这是我每个部分的代码:

  1. 检查单品页面的商品类型是否为“可变”:
global $post;

$product = wc_get_product($post->ID);

$product_type = $product->get_type();

Run Code Online (Sandbox Code Playgroud)
  1. 如果产品类型是“variable”,则输出正确的 html:
if($product_type == 'variable'):
  woocommerce_variable_add_to_cart();
endif;
Run Code Online (Sandbox Code Playgroud)
  1. 使用 php 和 woocommerce 挂钩生成新的自定义 html(单选按钮):
add_filter('woocommerce_dropdown_variation_attribute_options_html', 'my_theme_variation_radio_buttons', 20, 2);

function my_theme_variation_radio_buttons($html, $args)
{
  $args = wp_parse_args(apply_filters('woocommerce_dropdown_variation_attribute_options_args', $args), array(
    'options'          => false,
    'attribute'        => false,
    'product'          => false,
    'selected'         => false,
    'name'             => '',
    'id'               => '', …
Run Code Online (Sandbox Code Playgroud)

ajax woocommerce woocommerce-theming product-variations variable-product

5
推荐指数
1
解决办法
1509
查看次数