如何编辑WooCommerce价格显示

在本教程中查看如何更改WooCommerce价格显示,以便可以使用WooCommerce WordPress插件在商店页面上显示不同的内容

由于价格是基于串的数量,因此我们希望“产品”代表一个串,而价格就是串的价格。 这样,客户可以订购3串,并收取适当的费用。

您绝对可以更改定价显示,以便客户更轻松地比较各个产品的单价。 如果几种产品的单价不同,则需要一种更高级的方法来进行此操作,但是这里有几种方法可以帮助您开始调整WooCommerce价格显示。

对于这两种方法,我们都需要使用几个重要的过滤器:

  • woocommerce_get_price_html :更改产品和商店页面上的价格显示方式
  • woocommerce_cart_item_price :更改商品价格在购物车表中的显示方式( 不在结帐时,因为此处仅显示数量/总价,而不显示单价)。

假设您想在所有产品价格的末尾添加标签,例如“每包装”(如果您的产品是成捆捆绑的产品或以预包装的形式提供,则很有用)。 您可以更改定价显示,以使用产品和购物车价格过滤器将此标签附加到价格上:

<?php ///仅在需要时复制开头的php标记///在整个商店功能的每个产品价格之后添加“每个包装” sv_change_product_price_display($ price){$ price。='每个包装';返回$ price;} add_filter('woocommerce_get_price_html ','sv_change_product_price_display'); add_filter('woocommerce_cart_item_price','sv_change_product_price_display');

查看GitHub托管于❤的rawwc-product-price-display.php

woocommerce_get_price_html过滤器将在您的商店页面上对此进行更改:

在您的单个产品页面上:

woocommerce_cart_item_price过滤器也会在购物车中调整此显示:

如果您要专门更改特定产品的价格显示该怎么办? 可以使用相同的过滤器完成此操作,因为它们还将传递其他参数供您有条件地更改价格。 例如,让我们从问题返回到串示例。 虽然烤串的价格为每串$ 2,但我们希望显示“每公斤$ 15”作为价格,以便客户可以比较不同的产品。

这次,我们将分离出这些过滤器,并使用两个函数来修改产品和购物车的价格。 我们将首先检查产品ID,然后仅更改该产品的价格显示。

函数sv_change_product_html($ price_html,$ product){if(337 === $ product-> id){$ price_html =’ $ 15.00每公斤‘;}返回$ price_html;} add_filter(’woocommerce_get_price_html’,’sv_change_product_html’,10,2);函数sv_change_product_price_cart($ price,$ cart_item,$ cart_item_key){if(337 === $ cart_item [‘product_id’]){$ price =’$ 15.00
((每公斤7-8串));}返回$ price;} add_filter(’woocommerce_cart_item_price’,’sv_change_product_price_cart’,10,3);

查看GitHub托管于❤的rawwc-price-display.php

第一个功能将更改我的产品页面:

连同商店展示:

第二个功能将根据新定价调整购物车显示:

但是,如果您有多个具有单价的产品,此方法将非常麻烦,并且我们可能不想为每个产品ID都使用switch / if语句。 相反,我建议使用产品自定义字段来调整价格显示。 我们可以使用ID来获取该字段,然后为我们节省大量的硬编码,因为我们将以编程方式提取该字段。

如果您必须更改某些产品的价格显示,但不是全部更改,或者每种产品的价格都不同,那么使用自定义字段将为我们提供一个简单得多的代码段,因为我们可以为每个字段添加字段产品,然后使用我们的代码段检索此字段。

您可以将unit_price自定义字段添加到需要它的每个产品,然后在此处添加单价值。

添加自定义字段

添加此内容后,您可以检索单价,如果为产品设置了单价,请调整定价显示以使用该单价和您的自定义标签:

id,’unit_price’, true); if(!empty($ unit_price)){$ price_html =’‘。 wc_price($ unit_price)。 ‘/ kg ‘;}返回$ price_html;} add_filter(’woocommerce_get_price_html’,’sv_change_product_html’,10,2); //如果设置了unit_price,则更改购物车价格sv_change_product_price_cart($ price,$ cart_item,$ cart_item_key){$ unit_price = get_post_meta($ cart_item [‘product_id’],’unit_price’,true); if(!empty($ unit_price)){$ price = wc_price($ unit_price)。 ‘每公斤’;}返回$ price;} add_filter(’woocommerce_cart_item_price’,’sv_change_product_price_cart’,10,3);

查看GitHub托管于❤的rawwc-change-price-display-custom-field.php

wc_price()是一个方便的小功能,可以使用商店价格显示设置来格式化数字,请使用它!)

在这种情况下,仅当设置了单价时,才会更改产品/商店页面上的定价显示。 如果没有,它们的价格将保持不变:

购物车中的商品也会发生同样的情况-WooCommerce价格显示将根据商品在自定义字段中是否设置了unit_price而有条件地进行调整:

仅仅因为您以一种方式为商品定价并不意味着您需要向客户显示该价格。 有时更改价格显示可以为客户提供有关产品包装方式的更多信息,或者可以使客户更轻松地比较产品。

所有Visualmodo WordPress主题都与WooCommerce WordPress插件完全兼容,并且还添加了惊人的特殊功能。