我对get_option
方法。
我正在运营一个WooCommerce网站currency symbol position
设置为“带空格的右侧”。在wp\\U选项表中option_name
“woocommerce\\u currency\\u pos”正确设置为“right\\u space”。
在普通网站上查看产品时,一切正常,货币代码显示在右侧,选项值恢复正确。
然而,问题是我们使用了一个小JS函数来显示购物车(mini_cart.php
) 在灯箱中,返回的代码在左侧显示货币代码。
经过一点调试,我找到了方法get_woocommerce_price_format
这里的第一行是:$currency_pos = get_option( \'woocommerce_currency_pos\' );
所以这只是一个默认函数,用于获取option_name
从选项表中。然而,在这个Ajax调用中,它返回“left”。
我搞不懂到底是怎么回事,它返回的值与数据库中的值不同。
明显的潜在问题:
Ajax调用了错误的域/网站-但这并没有发生,它位于同一个项目中,代码相同。对代码的更改反映了罚款(adie($currency_pos)
返回字符串)
p、 AJAX称为via/wp-admin/admin-ajax.php
这是完整的函数,它不是类或任何东西的一部分
/**
* Get the price format depending on the currency position
*
* @return string
*/
function get_woocommerce_price_format ()
{
$currency_pos = get_option(\'woocommerce_currency_pos\');
switch ($currency_pos) {
case \'left\' :
$format = \'%1$s%2$s\';
break;
case \'right\' :
$format = \'%2$s%1$s\';
break;
case \'left_space\' :
$format = \'%1$s %2$s\';
break;
case \'right_space\' :
$format = \'%2$s %1$s\';
break;
}
//$format = \'%2$s %1$s\';
return apply_filters(\'woocommerce_price_format\', $format, $currency_pos);
}