双十一快要到了,接到客户的临时需求,是为他们的WooCommerce网店大促销做一些小修改。其中一个修改是给设置了促销价格的商品添加价格注释,就像以下这个样子。
很简单的一个需求,利用woocommerce_get_price_html这个钩子就能实现,代码如下:
1 2 3 4 5 6 | function brain1981_change_product_html( $price_html, $product ) { if( $product->is_on_sale() ) { $price_html.='<span style="display:block;font-size:12px;font-weight:normal;color:#c98c4b;">双十一活动折扣</span>'; } return $price_html; } |
在商品页面显示这句话,还要考虑用户将商品添加到购物车后也显示这样的价格解释,使用户确认自己已经得到了优惠,促进完成支付:
代码如下:
1 2 3 4 5 6 7 8 9 | add_filter( 'woocommerce_get_price_html', 'brain1981_change_product_html', 10, 2 ); function brain1981_change_product_price_in_cart( $price, $cart_item, $cart_item_key ) { $product = wc_get_product( $cart_item['product_id'] ); if( $product->is_on_sale() ) { $price.='<span style="display:block;font-size:12px;font-weight:normal;color:#c98c4b;">双十一活动折扣</span>'; } return $price; } add_filter( 'woocommerce_cart_item_price', 'brain1981_change_product_price_in_cart', 10, 3 ); |
在WooCommerce中对商品要做任何判断、获取或处理商品数据,都要先想办法获取到商品的对象$product,再从商品对象的内置方法获取商品的属性,比如上面两段代码中,我通过
$product->is_on_sale() |
这个方法判断商品是否在促销状态。
获取商品的自定义属性,可以通过这个方法:
$product->$product->get_attribute( 'pa_***' ); |
这里的pa_***就是在后台你自己设置的商品属性名称。
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/2647.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。