为了账号安全,请及时绑定邮箱和手机立即绑定

如何输出当前登录的 WooCommerce 用户优惠券使用情况?

如何输出当前登录的 WooCommerce 用户优惠券使用情况?

PHP
守着星空守着你 2023-08-19 16:47:59
我想为当前登录的用户输出他们使用特定优惠券代码的次数。优惠券代码“ example_coupon ”的最大“每次用户使用限制r”为12。我想在前端向用户显示他们使用该优惠券的次数,例如“优惠券使用次数:3 ”我运行了下面的代码,但是,它只显示所有用户的优惠券使用总量:function simple_function_1() {        $coupon_code = 'example_coupon';    global $woocommerce;    $coupon_data = new WC_Coupon($coupon_code);    echo ($coupon_data->usage_limit - $coupon_data->usage_count);// return number of remaining coupons}add_shortcode( 'own_shortcode1', 'simple_function_1' );希望这一切都有道理。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

将显示以下简码

  • 特定优惠券已使用多少次

  • 每个用户的使用限制

  • 基于当前登录用户的用户 ID。

// Function that runs when shortcode is called

function users_coupon_usage_shortcode() {

    // Only for logged-in users

    if ( ! is_user_logged_in() ) return;

    

    global $wpdb;

    

    // Coupon code

    $coupon_code = 'test';

    

    // Retrieving the coupon ID

    $coupon_post_obj = get_page_by_title( $coupon_code, OBJECT, 'shop_coupon' );

    $coupon_id       = $coupon_post_obj->ID;

    

    // Get the WC_Coupon Object

    $coupon_data = new WC_Coupon( $coupon_id );

    

    // Get current user id

    $user_id = get_current_user_id();

    

    // Usage limit per user

    $usage_limit_per_user = $coupon_data->get_usage_limit_per_user();

    

    // Get an array of used by count based on post_id, meta_key and meta_value (user_id)

    $used_by_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->postmeta WHERE post_id = '$coupon_id' AND meta_key = '_used_by' AND meta_value = '$user_id'");


    // Output   

    $output = sprintf( __( 'The coupon %s has already been used %s times out of %s', 'woocommerce' ), '"<strong>' . $coupon_code . '</strong>"', $used_by_count, $usage_limit_per_user );

     

    // Output needs to be return

    return $output;

// Register shortcode

add_shortcode( 'users_coupon_usage', 'users_coupon_usage_shortcode' );


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信