首页 > 解决方案 > 如果在产品级别管理库存级别,自定义添加到购物车按钮不起作用

问题描述

我只是对我在商店页面上创建的自定义添加到购物车按钮有一个小问题。

如果您查看下面的屏幕截图,如果您单击添加到购物车按钮(与价格相关的那个),它将为用户显示选项(数量、变化、添加到购物车按钮等)。

在此处输入图像描述

但是,我注意到如果产品设置为在产品级别管理库存,则添加到购物车按钮(与价格相关的按钮)不起作用(因为没有任何反应)。不确定为什么设置此设置后它不起作用。有人可以帮忙吗?

在此处输入图像描述

这是代码:

/**
 * Replace add to cart button in the loop.
 */
function iconic_change_loop_add_to_cart() {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    add_action( 'woocommerce_after_shop_loop_item', 'iconic_template_loop_add_to_cart', 10 );
}

add_action( 'init', 'iconic_change_loop_add_to_cart', 10 );


function iconic_template_loop_add_to_cart() {
    global $product;

    woocommerce_template_single_add_to_cart();
}

/**
 * Customise variable add to cart button for loop.
 *
 * Remove qty selector and simplify.
 */
function iconic_loop_variation_add_to_cart_button() {
    global $product;

    ?>
    <div class="woocommerce-variation-add-to-cart variations_button">
        <button type="submit" class="single_add_to_cart_button button"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
        <input type="hidden" name="add-to-cart" value="<?php echo absint( $product->get_id() ); ?>" />
        <input type="hidden" name="product_id" value="<?php echo absint( $product->get_id() ); ?>" />
        <input type="hidden" name="variation_id" class="variation_id" value="0" />
    </div>
    <?php
}

标签: phpwordpresswoocommerce

解决方案


给定的信息很少,很难找到错误。请按照以下步骤进行 -

  1. 硬重新加载浏览器,并检查控制台中是否存在致命的js错误并首先解决这些错误。
  2. 如果可变产品没有出现添加到购物车按钮 - 请确保您已输入可变价格
  3. 如果问题仍然存在 - 找到以下钩子的代码并编辑问题描述
  • woocommerce_product_single_add_to_cart_text
  • woocommerce_variable_add_to_cart
  • woocommerce_ajax_variation_threshold
  • woocommerce_before_variations_form
  • woocommerce_variation_is_visible

也正如 GhostPengy 所说,给我们来自iconic_loop_variation_add_to_cart_button被调用的代码。

按照上述步骤,如果没有解决,请给我们更多代码来准确识别错误。


推荐阅读