php - 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 Fastest Cache 的问题。如果您遇到这个问题,请确保您没有为购物车页面启用缓存,我禁用了插件,一切都很好,一切都以正确的方式翻译,现在可以工作了。
推荐阅读
- uibutton - UIButton 的背景属性
- html - Rails 嵌套表单没有为输入呈现正确的名称或 ID
- javascript - 反应 window.history.pushState 的替代品?
- javascript - 如何修改 element-tiptap 以便能够从 cloudinary 上传?
- flutter - Flutter Recipient: null Tried call (getTranslated method)
- python - Duplicate function retuning non-duplicated results on a BLAST hittable (SOLVED)
- python - change value of boolean field in admin pannel in Django
- python - 有没有一种简单的方法可以在 python 中接收 Http POST 请求,比如在 php 中?
- java - org.json.JSONException: No value for senses
- python - How to divide a text file sectionwise using Python