如何在WooCommerce消息中添加HTML "No products were found matching your selection"



在WooCommerce中,"没有找到与您选择的产品匹配"。当循环中没有找到产品时,将出现文本。

但是,我想在文本中添加HTML,所以我使用gettext过滤器钩子。通过str_ireplace,我可以很容易地覆盖文本:

function change_empty_category_text($translated) {
$translated = str_ireplace ('No products were found matching your selection.', 'sorry! we are not delivering products from this category to you pin code at the moment.', $translated);
return $translated;
}
add_filter( 'gettext', 'change_empty_category_text' );

然而,当我想在这个文本中添加HTML时:

function change_empty_category_text($translated) {
$translated = str_ireplace ('No products were found matching your selection.', 'sorry! we are not delivering products from this category to you pin code at the moment.rnplease visit the following categories insteadrn<a href = 'www.example.com/category1'>category 1</a>rn<a href = 'www.example.com/category2'>category 2</a>rn<a href = 'www.example.com/category3'>category 3</a>', $translated);
return $translated;
}
add_filter( 'gettext', 'change_empty_category_text' );

没有结果。相反,我得到的是与替换文本完全相同的文本。

任何建议吗?

您想要调整的文本可以在templates/loop/no-products-found.php中找到,因此您可以覆盖模板文件与使用gettext过滤器钩子相比,因为这个钩子在每次页面加载时都会执行多次。

然而,还有另一种选择。由于wc_no_products_found使用function_exits,请参阅:/includes/wc-template-functions.php @version 2.5.0

if ( ! function_exists( 'wc_no_products_found' ) ) {
/**
* Handles the loop when no products were found/no product exist.
*/
function wc_no_products_found() {
wc_get_template( 'loop/no-products-found.php' );
}
}

更多信息:什么是"function_exists"在Wordpress


因此,我们将使用我们自己的函数来重写函数,而不是使用函数中通过wc_get_template()调用的现有模板文件。

得到:

function wc_no_products_found() {
echo '<p class="woocommerce-info" style="display:block;">' . 
__( 'Sorry! we are not delivering products from this category to you pin code at the moment.<br>Please visit the following categories instead', 'woocommerce' ) 
. '<br><a href ="www.example.com/category2">category 2</a><br><a href="www.example.com/category3">category 3</a></p>';
}

如您所见,输出完全可以根据您的需要定制。CSS可能需要调整,因为这是主题相关的。

代码在您的活动子主题(或活动主题)的functions.php文件中。

相关内容

  • 没有找到相关文章

最新更新