php - WooCommerce:检查优惠券是否有效

标签 php wordpress woocommerce hook-woocommerce coupon

我正在尝试检查优惠券是否仍然有效(未达到其使用限制)并在这种情况下显示内容。

这样做的原因是我希望能够向特定访问者分发优惠券代码,但显然不想分发已经达到其使用限制的优惠券。

我正在尝试用 PHP 实现这一点,并想象代码是这样的:

<?php if (coupon('mycouponcode') isvalid) {
  echo "Coupon Valid"
} else {
  echo "Coupon Usage Limit Reached"
} ?>

这里的任何帮助都会很棒:)

最佳答案

我相信推荐的方式encouraged by WooCommerce是使用\WC_Discounts类(class)。这是一个例子:

function is_coupon_valid( $coupon_code ) {
    $coupon = new \WC_Coupon( $coupon_code );   
    $discounts = new \WC_Discounts( WC()->cart );
    $response = $discounts->is_coupon_valid( $coupon );
    return is_wp_error( $response ) ? false : true;     
}

Note: It's also possible to initialize the WC_Discounts class with a WC_Order object as well.

重要的是要记住至少在 wp_loaded 钩子(Hook)中这样做,就像这样:

add_action( 'wp_loaded', function(){
   is_coupon_valid('my-coupon-code');
});

有一个明显更简单的方法 is_valid()来自 WC_Coupon类,但它已被弃用,取而代之的是 WC_Discounts->is_coupon_valid()

$coupon = new WC_Coupon( 'my-coupon-code' );
$coupon->is_valid();

关于php - WooCommerce:检查优惠券是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745791/

相关文章:

php - 添加 MYSQL 数组时遇到问题

html - Wordpress Ninja 表格 CSS 样式

php - 自定义数据库表查询

javascript - jQuery .each() 无法在 woocommerce header 购物车列表中找到元素

mysql - Woocommerce:如何以编程方式更新所有产品的元属性值

php - 在 WooCommerce 电子邮件通知中显示订单商品的产品类别

php - Travis CI 和 Symfony2 集成 .travis.yml 问题

PHP:从数组中调用一个类?

php - 如何构建动态访客计数器

php - 如何分离 PHP 中 while 循环中输出的复选框变量结果?