使用 "woocommerce_product_add_to_cart_text" 过滤器挂钩时出现问题
Issue when using "woocommerce_product_add_to_cart_text" filter hook
我编写了一个函数来更改延期交货产品的“添加到购物车”按钮文本。
woocommerce_product_single_add_to_cart_text
工作正常,但使用 woocommerce_product_add_to_cart_text
会使页面崩溃。
在错误日志中我看到它冻结了 class-wp-term.php
。
这是我的函数代码:
function change_button_text_on_backorder() {
if (! is_admin()) {
global $product;
$qty = $product->get_stock_quantity();
$button_text = $product->add_to_cart_text();
if ( $qty < 1 && $product->backorders_allowed() ) { // backorders allowed?
$button_text = 'BACKORDER';
}
return $button_text;
}
}
add_filter('woocommerce_product_single_add_to_cart_text', 'change_button_text_on_backorder');
add_filter('woocommerce_product_add_to_cart_text', 'change_button_text_on_backorder');
我使用的是 WordPress 5.8、WooCommerce 5.6。有什么崩溃的建议吗?
您的代码有一些错误
$product
作为参数传递,所以不需要使用全局变量
$product->add_to_cart_text()
也不是必需的,因为它也作为参数传递
所以你得到:
function filter_woocommerce_product_add_to_cart_text( $add_to_cart_text, $product ) {
// Get stock quantity
$qty = $product->get_stock_quantity();
// Backorders allowed?
if ( $qty < 1 && $product->backorders_allowed() ) {
$add_to_cart_text = __( 'Backorder', 'woocommerce' );
}
return $add_to_cart_text;
}
add_filter( 'woocommerce_product_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );
add_filter( 'woocommerce_product_single_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );
我编写了一个函数来更改延期交货产品的“添加到购物车”按钮文本。
woocommerce_product_single_add_to_cart_text
工作正常,但使用 woocommerce_product_add_to_cart_text
会使页面崩溃。
在错误日志中我看到它冻结了 class-wp-term.php
。
这是我的函数代码:
function change_button_text_on_backorder() {
if (! is_admin()) {
global $product;
$qty = $product->get_stock_quantity();
$button_text = $product->add_to_cart_text();
if ( $qty < 1 && $product->backorders_allowed() ) { // backorders allowed?
$button_text = 'BACKORDER';
}
return $button_text;
}
}
add_filter('woocommerce_product_single_add_to_cart_text', 'change_button_text_on_backorder');
add_filter('woocommerce_product_add_to_cart_text', 'change_button_text_on_backorder');
我使用的是 WordPress 5.8、WooCommerce 5.6。有什么崩溃的建议吗?
您的代码有一些错误
$product
作为参数传递,所以不需要使用全局变量$product->add_to_cart_text()
也不是必需的,因为它也作为参数传递
所以你得到:
function filter_woocommerce_product_add_to_cart_text( $add_to_cart_text, $product ) {
// Get stock quantity
$qty = $product->get_stock_quantity();
// Backorders allowed?
if ( $qty < 1 && $product->backorders_allowed() ) {
$add_to_cart_text = __( 'Backorder', 'woocommerce' );
}
return $add_to_cart_text;
}
add_filter( 'woocommerce_product_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );
add_filter( 'woocommerce_product_single_add_to_cart_text', 'filter_woocommerce_product_add_to_cart_text', 10, 2 );