【问题标题】:Add Filter to change product price aurtomatically depending on an attribute name in combinations (woocommerce)添加过滤器以根据组合中的属性名称自动更改产品价格(woocommerce)
【发布时间】:2020-01-01 09:59:50
【问题描述】:

从我们的带有 add_filter 函数的 funtions.php 中,我们尝试自动提高产品的价格,如果产品具有选择特定名称的某些属性:Chrom -> +2.95 和 Titan -> + 5,95 价格必须随时更改:在购物车内。订单、产品详情页面、概览页面。

我们需要覆盖 price.php 吗?如果是这样 - 没问题。 或者将代码放在functions.php中就足够了?

由于我们不擅长编码,因此我们在 woocommerce 文档中进行了一些研究,但未能得出任何有意义的结果。

感谢您的帮助

【问题讨论】:

  • 你的问题不够清楚:是针对简单产品,可变产品吗?产品属性是普通产品属性还是用于变体的产品属性。您的主要产品属性名称是什么?请尝试澄清您的问题,因为它不清楚并且实际上对其他读者没有用。

标签: wordpress woocommerce variations add-filter


【解决方案1】:

您可以通过代码来完成,但由于它似乎是一次性更改,您可以使用 bulk price editor plugin

或者试试这个代码:

    add_filter( 'woocommerce_get_price', 'calculate_price_by_material', 9999, 2 );
function calculate_price_by_material($price, $product){
    $materials = explode(',',$product->get_attribute('Material'));
    foreach ($materials as $material){
        if (($material == 'Chrom') || ($material == 'Titan')){
            $price *= 2.5;
        }
    }
    return $price;
}

【讨论】:

  • 感谢 sn-p。但它不会改变价格,例如选择“铬”。什么都没发生。是因为我们使用“Chrom”作为组合的一个属性吗?您不能只选择“材质:铬”,您还必须选择属性“尺寸:...whatever...”
  • 我只是尝试了没有多个属性(组合),只有“材料”。但是在选择“滤音”时 - 没有发生任何事情,价格没有更新/更改。 span>
  • 哦,我以为 Chrom 是属性的名称。我现在将更新代码。
  • 我编辑了代码。你现在可以测试它。我假设您的属性名称是“材料”。值可以是“Chrom”或“Titan”
  • 谢谢,我做了一个测试,将代码放在function.php中,但不幸的是,当我选择“Chrome”作为“材料”属性时,价格没有更新。抱歉,可能是什么问题?
猜你喜欢
  • 2018-10-13
  • 1970-01-01
  • 2018-09-08
  • 2020-07-23
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多