gpt4 book ai didi

php - 为 WooCommerce 中的特定产品类别自定义 "Add to cart"按钮

转载 作者:行者123 更新时间:2023-12-02 03:48:59 24 4
gpt4 key购买 nike

这是我的代码:

    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;
}

我需要创建一个函数来替换一个特定产品类别的“添加到购物车”按钮网址和文本。

此按钮将触发带有联系表单的灯箱,此按钮的文本将为:请求报价

如何才能使其按预期工作?

以下是它在 this link 上的实际工作原理.

最佳答案

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

针对“衬垫”产品类别的产品提供全局完整的解决方案:

  1. 如果您的一款产品(属于“内衬”产品类别)不是可变产品,您需要首先将商店和存档页面中的“添加到购物车”按钮替换为链接到该产品的简单按钮。<
  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;
}

代码位于事件子主题(或主题)的 function.php 文件中或任何插件文件中。

此代码经过测试,适用于所有产品类型(简单、可变……)。您将得到(示例):

enter image description here


enter image description here

关于php - 为 WooCommerce 中的特定产品类别自定义 "Add to cart"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46005902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com