我使用WPML多货币已经有一段时间了,但最近我关闭了它,并使用了另一个货币插件。
大部分金额已正确转换,但对于某些数额,即使在我改为另一种货币之后,仍保持默认货币:
1)来自Woocommerce预订插件的预订成本
2)额外选项成本和额外选项插件的总成本
该金额是使用AJAX从操作中获得的:
1) wc_bookings_calculate_costs
2) tc_epo_bookings_calculate_costs
经过一些研究后,我发现计算的金额如下:
wp-content/plugins/woocommerce-multilingual/compatibility/class-wcml-bookings.php
代码:https://github.com/wp-premium/woocommerce-multilingual/blob/master/compatibility/class-wcml-bookings.php (在第163行引用wc_bookings_calculate_costs,在第731行指向函数filter_wc_booking_cost )
所以,这是相当奇怪的,因为我已经禁用了WPML设置中的多货币。
我怀疑在某些代码仍然使用WPML货币的情况下,如何解决这个问题?
谢谢你的帮助。
发布于 2016-11-29 23:26:34
首先,我只使用WPML一次,我真的不喜欢它。
在我看来,您可能会在wp-content/languages/woocommerce-multilingual/或wpml中留下一些po/mo文件。我在线程上发现
为什么不呢,这就解释了这个鬼插件的行为!?作为woocommerce-多plugin兼容性检查的其他插件选项..。添加一些自定义模板文件,翻译字符串,可以理解。
取决于您如何停用(和删除?)插件,是否有可能在您的安装中保留一些多货币插件的选项设置?
您确定没有任何代码(您的代码或其他插件或主题)直接调用class-wcml-bookings.php (没有is_plugin_active() ),并通过这种方式重新激活一些操作和筛选器?但是我真的很怀疑这个事实,因为类不是初始化的,所有的过滤器引用都会中断。
如果我错了,你说的过滤器是第163行
add_filter( 'get_post_metadata', array( $this, 'filter_wc_booking_cost' ), 10, 4 );你试过用remove_filter()删除它吗?
remove_filter('get_post_metadata', 10, 4);写这篇文章,我更依赖于mo/po的方式,而不是过滤器。
希望能帮上忙!
发布于 2016-12-03 16:57:55
在您破坏您的自我,检查您的WC设置,->工具页,并首先尝试清除所有的转基因,并做重新计数的条款。WC使用的是转基因,这些需要被清除几次。
https://wordpress.stackexchange.com/questions/247504
复制相似问题