WooCommerce - 更改产品"添加到购物车"按钮文本 £40 或更多



我正在尝试更改"添加到Cart"只有当产品价格在40英镑或以上时,才能在单个产品页面上进行按钮测试。我已经尝试了下面的代码片段,但它没有改变任何东西。

/**
* Change Add to Cart button text for products £40 or more
* 
* @return string
*/
function banks_cart_button_text() {
global $product;
if( $product->get_regular_price >= '40' ) {
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woocommerce_custom_single_add_to_cart_text' ); 
function woocommerce_custom_single_add_to_cart_text() {
return __( 'Add to Cart with FREE UK Shipping', 'woocommerce' ); 
}
}
return $product->get_regular_price();
}

我正要发布,遇到了下面的帖子,我更新了,但这也不起作用。

链接:根据WooCommerce产品类型更改添加到购物车按钮和文本作者:LoicTheAztec

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart_button', 10, 2 );
function replace_loop_add_to_cart_button( $button, $product  ) {
// Products above X amount
if( $product->get_regular_price >= '40' ) {
$button_text = __( "Add to Cart with FREE UK Shipping", "woocommerce" );
}

return '<a class="view-product button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
}

更新:

改编了另一个片段,我用了一会儿,但不工作。问题是这一行吗?

if( $product->get_regular_price >= '40' ) {

片段

// Replacing the single product button add to cart by a custom button when store is closed
add_action( 'woocommerce_single_product_summary', 'replace_single_add_to_cart_button', 1 );
function replace_single_add_to_cart_button() {
global $product, $url, $request ;

// Products equal to or more than X amount
if( $product->get_regular_price >= '40' ) {
// For variable product types (keeping attribute select fields)
if( $product->is_type( 'variable' ) ) {
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
add_action( 'woocommerce_single_variation', 'custom_product_button', 20 );
}

// For all other product types
if( $product->is_type( 'simple' ) ) {
remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'custom_product_button', 30 );
}

// For all other product types
else {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'custom_product_button', 30 );
}
}  

else {
// Products equal to or more than X amount
if( $product->get_regular_price >= '40' ) {
// For variable product types (keeping attribute select fields)
if( $product->is_type( 'variable' ) ) {
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
add_action( 'woocommerce_single_variation', 'custom_product_button', 20 );
}

// For all other product types
if( $product->is_type( 'simple' ) ) {
remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'custom_product_button', 30 );
}

// For all other product types
else {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_simple_add_to_cart', 'custom_product_button', 30 );
}
}
}
}
function custom_product_button(){
// Display button
printf( '<a class="button disabled">%s</a>', __( "Add to Cart with FREE UK Shipping", "woocommerce" ) );
}

不需要将一个函数放在另一个函数中。这应该足够了。

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woocommerce_custom_single_add_to_cart_text', 100, 2 );

function woocommerce_custom_single_add_to_cart_text( $add_to_cart_text, $product ) {
if ( $product->get_regular_price() >= '40' ) {
return __( 'Add to Cart with FREE UK Shipping', 'woocommerce' );
}
return $add_to_cart_text;
}

Try

if($产品→get_regular_price()在= 40){

(末尾加括号,将price与非string类型的int进行比较)。还要检查你是否获得了一个值。根据您的设置,您可能需要检查

产品→美元get_sale_price ()

产品→美元get_price ()

您可以使用上面的函数,或者通过使用Locotranslate插件,它为每种语言的网站文本创建模板(根据单词的来源由文件分隔,例如woocommerce文件,theme文件,plugins文件),因此您只需替换"Word在woocommerce的英文模板文件中加入您想要的文本。

相关内容

  • 没有找到相关文章

最新更新