当前位置: 首页 > 知识库问答 >
问题:

在WooCommerce中为特定产品类别定制“添加到购物车”按钮

卓致远
2023-03-14
    add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );    // 2.1 +

function woo_custom_cart_button_text( $text ) {
    if( has_term( 'liners', 'product_cat' ) ){
        $text = __( ' ', 'your-plugin' );

          echo do_shortcode('<a href="#" class="popmake-923">Request а Quote</a>');
    }
    return $text;
}

我怎样才能使它像预期的那样工作呢?

下面是它在这个链接上的实际工作方式。

共有1个答案

亢保赫
2023-03-14

更新:针对2个不同的产品类别(2个不同的按钮)

为您的“班轮”产品类别的产品提供全面完整的解决方案:

  1. 如果您的一个产品(在“liners”产品类别中)不是可变产品,则首先需要用链接到该产品的简单按钮替换“商店和存档”页面中的“添加到购物车”按钮。
  2. 在单产品页面中,您需要删除“添加到购物车”按钮和“数量”字段,以便由自定义按钮替换。
// Replacing the button add to cart by a link to the product in Shop and archives pages
add_filter( 'woocommerce_loop_add_to_cart_link', 'conditionally_replacing_add_to_cart_button', 10, 2 );
function conditionally_replacing_add_to_cart_button( $button, $product  ) {

    $categories = array('liners','custom-classics');

    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

    // For 'liners' product category
    if( has_term( $categories, 'product_cat', $product_id ) ){
        $button_text = __("View product", "woocommerce");
        $button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
    }
    return $button;
}

// replacing add to cart button and quantities by your custom button in Single product pages
add_action( 'woocommerce_single_product_summary', 'conditionally_replacing_template_single_add_to_cart', 1, 0 );
function conditionally_replacing_template_single_add_to_cart() {
    global $product;

    $categories = array('liners','custom-classics');

    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

    function custom_button_replacement(){
        global $product;

        $categories = array('liners','custom-classics');

        $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

        if( has_term( $categories[0], 'product_cat', $product_id ) )
            $class_id = "923"; // liners
        elseif( has_term( $categories[1], 'product_cat', $product_id ) )
            $class_id = "925"; // custom-classics
        else $class_id = ""; // none

        // set below your custom text
        $button_text = __('Request а Quote', 'woocommerce');

        // Output your custom text
        echo '<a href="#" class="popmake-'.$class_id.' button">'.$button_text.'</a>';
    }

    // Only for 'liners' and 'custom-classics' product categories
    if( has_term( $categories, 'product_cat', $product_id ) ):
        // For variable product types
        if( $product->is_type( 'variable' ) ){
            // Removing add to cart button and quantities
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );

            // The button replacement
            add_action( 'woocommerce_single_variation', 'custom_button_replacement', 20 );
        }
        else // For all other product types
        {
            // Removing add to cart button and quantities
            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

            // The button replacement
            add_action( 'woocommerce_single_product_summary', 'custom_button_replacement', 30 );
        }
    endif;
}
 类似资料:
  • 我正在尝试将我的WooCommerce档案页面上特定产品类别的add to cart按钮更改为“Read More”按钮,该按钮将链接到产品页面(但不链接到单个产品页面本身)。 使用“将添加到购物车按钮替换为WooCommerce 3中的shop pages中的read more链接到product页面”的答案代码,如何将其限制为仅有一个产品类别(本例中术语名称为“Classs”)? 感谢任何帮助

  • 勾选了复选框的产品实际上是不可购买的,这是期望的结果。 我遇到的问题是,当我在产品目录页面上为可购买的产品(那些没有勾选的)点击“添加到购物车”时,我被重定向到产品页面,并且默认的WooCommerce消息“对不起,这个产品不能被购买。”出现。应该发生的是,当单击“添加到购物车”按钮时,产品会自动添加到购物车中。 同样从单品页面,我可以毫无问题地添加可购推车。

  • 我使用WooCommerce Wordpress中的以下代码,通过一个模板,使用add_to_cart($product_id)功能添加了许多产品。 现在,我希望通过此模板为每个产品添加自定义价格。现在购物车中的价格和数据库中的价格一样,但我想通过这一点添加我的自定义价格。有人能帮我做同样的事吗。谢谢

  • 我正在使用一个名为“一键聊天订购”的插件通过whatsapp订购产品,并且我在所有产品的单一产品页面上隐藏了“添加到购物车”按钮。只有当产品重量小于50kg时,我才能显示“添加到购物车”按钮。 样本输出 需要在报价按钮后显示添加到购物车按钮。我已经使用这个片段来隐藏基于我的条件的添加到购物车按钮。但它也隐藏了WhatsApp报价按钮。我不知道为什么? 我是WooCommerce的新手。请帮助解决这

  • 在Woocommerce中,我需要在添加产品时跳过购物车页面,并直接重定向到仅限订阅产品类型的签出。 我在其他地方找到了下面的代码,它适用于跳过基于产品ID的购物车页面,但是我不能正确地使用产品类型(请参阅下面我尝试的内容)。 我尝试的:(它破坏了整个网站:变成了一个blanc页面) 有没有办法做到这一点?

  • 在WooCommerce中,我需要为产品类别的每一项设置最低数量。我搜索了论坛,找到了一些代码,除了它只计算一个产品类别的总数量外,其他代码运行良好: 例如,如果我有两个属于同一产品类别的产品(A和B),并将该类别的最小数量设置为5,则在这种情况下不会出现客户的错误消息: 产品A:3 产品乙:2 我需要一个最小的数量5的每一个产品的类别。 您知道如何更改和优化以下代码吗?