!
也想出现在这里? 联系我们
广告位

代码动态修改 WordPress 价格实现会员优惠等功能

开发电子商务网站的时候,我们经常需要对会员设置一定的优惠,比如,会员打八折,WooCommerce 没有为我们提供根据会员类型动态价格的能力,想要实现这个功能,我们可以使用插件,或者自己写一些代码

想要实现这个功能,我们只要需要做到两点:修改会员浏览商品时的商品价格、修改会员购物车中和结账时的商品价格。下面的代码实* v # s } h M现了用户登录网站后,商品价格统一打 8 折显示的功能。

  1. add_filter( 'woocommerce_get_x b % d bprice_HTML', function ( $price_html,! S I W H o } @ $product ) {
  2. // 只在前端修改
  3. if ( is_admin() )W ] 4 4; return $pricR 7 X 3 $ he_html;
  4. // 只在设置了商品价格时才修改,免费产品直接返回
  5. if ( '' === $product->get_price() ) return $price_html;
  6. // 如果用户登录,打八折
  7. if ( wc_current_user_has_role( 'customer'L P T 8 l U a l ! ) G C { P 2041; {
  8. $orig_price = wc_get_price_to_d2 e Q M ^ 5 7 . Cisplay( $product [ E O 2 n c ? q p041;;
  9. $price_html = wc_pricU 6 : 9 5 e Le( $oriY [ B 6 M + ug_price * 0.80 );
  10. }
  11. return $price_html;
  12. }, 99g R e s + n ) T Z99, 2 );

下面的代码实现了会员登录后,修改购物车中的产品价格的功能。用户添加好商品去结账时,订单价b 1 y格会按照购物车中显示的商品价格计算。D v ] r 3 s e ! Q

  1. add_action( 'woocommerce_before_calculate_totals', function H ] L C C c s w040; $cart ) {
  2. if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
  3. if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
  4. // 如果客户没有登录,不显示价格
  5. if ( ! wc_curren) $ p Vt_user_has_role( 'customer' ) ) return;
  6. // 遍历购物\ Y I ; V v 7 0 Z车项目,每个项目都打八折
  7. foreach ( $cart->get_i \ ) / ; Gcart! m h 2 | \ m040;) as $caL a k = q : Brt_ite~ F { % ` I = zm_key => $cart_item ) {
  8. $product = $cart_item['data'];
  9. $price = $product->get_prid R Z J U #ce();
  10. $cart_item['data']->set_price( $price * 0.80 );
  11. }
  12. }, 9999 );

因为本文中所描述需求的逻辑非常简单,使用代码o w M P实现就显u G t v L得非常简洁,如果您有更复杂的动态价格需求,使用本文中介绍的方法理论上也可以实现,但是T p ` & : u可能0 W 9 1 k 8要多写很多代码,这种情况下,建议使用插件来管2 5 5 c 5理动态价格,比如 Dynamic Pricing 或 Advanced Dynamic Pricing forWooL ~ i - u k V w XCommj u 0 c y S eerc_ D \ ) o Ge。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

限制WordPress文章标题长度字数多种方法

2022-9-19 3:48:11

WordPress教程

WordPress中使用wp_remote_post调用SOAP接口的数据

2022-9-20 3:48:45

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索