Google Shipping Feed 与WPML货币输出问题解决

我使用的是 Wpml+WooCommerce Gateways Country Limiter+WooCommerce Google Product Feed+WooCommerce Multilingual

这样有个问题。可以输出多语言,但是不能输出货币的值。

差不多在wp-content/plugins/woocommerce-product-feeds/woocommerce-gpf-feed-google.php 276行
$currency_1 = $_GET['currency']; 
if(!$currency_1){    
     $currency_1 = $this->store_info->currency; 
}   
$output = '<g:price>' . $price . ' ' . $currency_1 . "</g:price>\n";
//  $output = '<g:price>' . $price . ' ' . $this->store_info->currency . "</g:price>\n";
$output .= ' <g:sale_price>' . $sale_price . ' ' . $currency_1 . "</g:sale_price>\n";

获取输出改成下面。对应currency的值就是需要输出的货币形式。

woocommerce-gpf-feed-bing.php;woocommerce-gpf-feed-google-inventory.php;如果需要使用,则修改一样。

 

https://www.XXXX.com/?woocommerce_gpf=google&lang=ja&currency=GBP
https://www.XXXX.com/ja/?woocommerce_gpf=google&currency=JPY

 

这样就可以正常使用Google Shipping Feed 其他国家投放的问题。当然要是后面作者将这个bug打上了,也很就不用这么改了。这种改好比较简单。

上面是解决货币符号问题。下面是解决货币转换问题

直接在模板的function.php中加入下面代码 [如果觉得有必要的话直接放在上面修改的feed插件的一个调用文件中。]

if(!is_admin())
{
 add_action( 'wcml_client_currency', 'currency' );
}
 
function currency( $current_currency ) {
 global $woocommerce,$sitepress;
 
 $currency = isset( $_GET['price'] ) ? esc_attr( $_GET['price'] ) : $current_currency;
 $currency = strtoupper( $currency );
 
 $woocommerce->session->set('client_currency', $currency); 
 
 return $currency;
}

请求地址:

https://www.XXXX.com/?woocommerce_gpf=google&currency=GBP&price=gbp
https://www.XXXX.com/ja/?woocommerce_gpf=google&currency=JPY&price=jpy
https://www.XXXX.com/?woocommerce_gpf=google&lang=ja&currency=GBP&gpf_categories=id&gpf_start=0&gpf_limit=100&price=GBP
https://www.XXXX.com/ja/?woocommerce_gpf=google&gpf_categories=53&currency=JPY&price=GBP
[对应语言货币ok情况下可以默认不加price参数。]

 

查考来源 https://wpml.org/forums/topic/display-currency-via-url/

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*