【问题标题】:Issue with WooCommerce filter " woocommerce_product_get_price"WooCommerce 过滤器“woocommerce_product_get_price”问题
【发布时间】:2020-08-21 18:12:39
【问题描述】:

我正在经营一家 WooCommerce 商店(WordPress 5.4.1 和 WooCommerce 4.1.0),我正在尝试根据客户位置设置价格,所以为此我通常是一个小型的 sn-p,我一直在更新我的 sn-ps 不推荐使用的功能,我已经更新了一些有任何问题的功能,但是对于这个,我不明白为什么不推荐使用的方法有效,但新的方法无效。

这是不推荐使用版本的代码,而不是 woocoomemerce_product_get_price 旧方法使用 woocommerce_get_price,它有效,巴塞罗那客户的价格增加了正确的乘数,但此代码会影响 WordPress,例如,如果我尝试更新一个插件我有一个错误,或者如果我尝试搜索一个新插件,任何结果都会显示,直到我按下 f5。

add_filter( 'woocommerce_get_price', 'change_specific_products_price', 10, 2 );
function change_specific_products_price( $price, $product ) {
$userInfo = geoip_detect2_get_info_from_current_ip();

if ( has_term('skf', 'product_cat', $product->get_id() ) && $userInfo->city->name == 'Barcelona' ) {
   $price *= 1.20;
}
return $price;
} 

所以我决定更新弃用的函数,我查看了 WooCommerce 文档,但我不明白为什么弃用的方法有效,而新的方法却不行。

这是代码的更新版本

  add_filter( 'woocommerce_product_get_price', 'change_specific_products_price_2', 10, 2 );
  function change_specific_products_price_2( $price, $product ) {
  $userInfo = geoip_detect2_get_info_from_current_ip();

if ( has_term('skf', 'product_cat', $product->get_id() ) && $userInfo->city->name == 'Barcelona' ) {
   $price *= 1.20;
}
return $price;
} 

我被困在这一点上,任何帮助都会很棒。

【问题讨论】:

  • change_specific_products_price_2 不确定你是否可以在 fct 中使用数字。定义。试试two 更好...

标签: php wordpress woocommerce hook-woocommerce price


【解决方案1】:
add_filter( 'woocommerce_product_get_price', 'change_specific_products_price', 10, 2 );

function change_specific_products_price( $price, $product ) {

    $userInfo = geoip_detect2_get_info_from_current_ip();

    if ( has_term( 'cloth', 'product_cat', $product->get_id() ) && $userInfo->city->name == 'Barcelona' ) {
        $price *= 1.20;
    }
    return $price;
}

这很好用。

【讨论】:

    【解决方案2】:

    非常感谢您的回复,但是代码不起作用,这很奇怪,不推荐使用的功能可以使用,但是新功能不起作用,这就是为什么我完全迷路了。

    我已经联系了作者的主题,如果这段代码会以某种方式影响 woocommerce 的工作方式,或者主题。

    就像这段代码会破坏 ajax 重新加载,这就是为什么当我在 wordpress 后端搜索新插件时,在按 f5 手动刷新页面之前不显示任何内容。

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 2022-01-06
      • 1970-01-01
      • 2021-05-01
      • 2012-12-08
      相关资源
      最近更新 更多