在 Woocommerce 中更改添加到购物车 is_purchasable 通知
Change add to cart is_purchasable notice in Woocommerce
我想将通知'Sorry, this product cannot be purchased'更改为'Sorry, the product [product name] cannot be purchased.'
我在 WC_Cart
add_to_cart()
方法源代码中找到了它,下面是我想要更改的内容的摘录:
if ( ! $product_data->is_purchasable() ) {
#the current line
#throw new Exception( __( 'Sorry, this product cannot be purchased.', 'woocommerce' ) );
# i want to replace for this one
throw new Exception(sprintf( __( 'Sorry, the product "%s" cannot be purchased.', 'woocommerce' ), $product_data->get_name() ) );
}
有没有办法在我的 functions.php
文件中的钩子或过滤器或其他东西中执行此操作?
这可以在 WordPress gettext
过滤器钩子中使用以下钩子函数来完成:
add_filter('gettext', 'renaming_purshasable_notice', 100, 3 );
function renaming_purshasable_notice( $translated_text, $text, $domain ) {
if( $text === 'Sorry, this product cannot be purchased.' ) {
$post_title = get_post($GLOBALS['_POST']['add-to-cart'])->post_title;
$translated_text = sprintf( __( 'Sorry, the product %s cannot be purchased.', $domain ), '"'.$post_title.'"' );
}
return $translated_text;
}
代码进入活动子主题(或活动主题)的 function.php 文件。
已测试并有效。
你会得到类似的东西:
我想将通知'Sorry, this product cannot be purchased'更改为'Sorry, the product [product name] cannot be purchased.'
我在 WC_Cart
add_to_cart()
方法源代码中找到了它,下面是我想要更改的内容的摘录:
if ( ! $product_data->is_purchasable() ) {
#the current line
#throw new Exception( __( 'Sorry, this product cannot be purchased.', 'woocommerce' ) );
# i want to replace for this one
throw new Exception(sprintf( __( 'Sorry, the product "%s" cannot be purchased.', 'woocommerce' ), $product_data->get_name() ) );
}
有没有办法在我的 functions.php
文件中的钩子或过滤器或其他东西中执行此操作?
这可以在 WordPress gettext
过滤器钩子中使用以下钩子函数来完成:
add_filter('gettext', 'renaming_purshasable_notice', 100, 3 );
function renaming_purshasable_notice( $translated_text, $text, $domain ) {
if( $text === 'Sorry, this product cannot be purchased.' ) {
$post_title = get_post($GLOBALS['_POST']['add-to-cart'])->post_title;
$translated_text = sprintf( __( 'Sorry, the product %s cannot be purchased.', $domain ), '"'.$post_title.'"' );
}
return $translated_text;
}
代码进入活动子主题(或活动主题)的 function.php 文件。
已测试并有效。
你会得到类似的东西: