Wordpress Woo Minicart插件与Polylang问题的购物车字符串和购物车页面链接不同的语言



我正在尝试使用Polylang的pll_current_language()更改Woo Minicart插件https://wordpress.org/support/plugin/woo-minicart/中不同语言的字符串值,但我在Polylang和Woo Minicart插件方面遇到了一些麻烦。我将附上一段视频,因为字符串会改变一秒钟,然后回到另一种语言。此外,不同语言的不同购物车页面的不同链接也不会改变。这是它在前端的样子:https://www.youtube.com/watch?v=tYFX34ARhF0&feature=youtu.be我只是希望字符串和链接要根据两种不同的语言改变,请帮助。下面是我放入wmc-default-fragment.php和wmc-default-template.php中的代码:

<div class="wmc-bottom-buttons">
<?php if(pll_current_language() == 'en'){ 
echo '<a href="https://testb.com/en/cart/">'; }?>
<?php if(pll_current_language() == 'bg'){ 
echo '<a href="https://testb.com/количка/">'; }?>

<?php if(pll_current_language() == 'bg'){ _e( 'Количка', 'woo-minicart' );} else if(pll_current_language() == 'en'){_e( 'Cart', 'woo-minicart' ); }?></a>
<a href="<?php echo wc_get_checkout_url(); ?>"><?php _e( 'Поръчка', 'woo-minicart' ) ?></a>
</div>

请帮帮我

在简单浏览了Polylang文档之后,我发现了'pll_language_defined',它在所有其他函数之后执行。看这里:https://polylang.pro/doc/developpers-how-to/

当Polylang加载语言?有两种情况:语言是从内容设置的;Polylang需要延迟语言加载,并在一个与优先级为5的动作"wp"动作挂钩的函数中完成。语言代码被添加到所有的url(默认):没有必要推迟语言加载,它就像Polylang不活跃一样完成。由于第一种情况,插件作者不应该在'wp'操作被触发之前尝试翻译字符串。Polylang提供了一个新的操作'pll_language_defined',该操作在语言定义后立即触发。无论用户选择何种语言,它都可以工作。

我使用pll_language_defined,我在里面添加了一个动作。

<?php  
function action_pll_language_defined() {
if(pll_current_language() == 'bg'){ _e( 'Поръчка', 'woo-minicart' );} else 
if(pll_current_language() == 'en') { _e( 'Checkout', 'woo-minicart' ); } 


}


add_action('pll_language_defined', 'action_pll_language_defined', 10, 2);
do_action('pll_language_defined');
?>

然后一切正常,它们都在正确地变化。在那之后,我遇到了一些问题,产品被随机添加到购物车中等等。这是插件WP最快缓存的问题。如果你遇到这个问题,确保你没有为购物车页面启用缓存,我禁用了插件,一切都很好,一切都以正确的方式翻译,现在它工作了。

最新更新