如何在woocommerce中使用客户电子邮件地址作为自己的优惠券代码

时间:2017-01-23 18:56:54

标签: php wordpress woocommerce

我正在尝试使用客户电子邮件地址作为自己的优惠券代码并享受特殊折扣。为了实现这一点,我尝试了以下代码,但没有任何事情发生错误Call to undefined function get_currentuserinfo()。是否可以使用优惠券代码,而不是像自定义post_type那样保存?

这是我到目前为止所尝试的代码。

global $current_user;

get_currentuserinfo();
$user_email = $current_user->user_email ;

$coupon_code = $user_email; // Code
$amount = '10'; // Amount
$discount_type = 'fixed_cart'; // Type: fixed_cart, percent, fixed_product, percent_product

$coupon = array(
    'post_title' => $coupon_code,
    'post_content' => '',
    'post_status' => 'publish',
    'post_author' => 1,
    'post_type'     => 'shop_coupon'
);

$new_coupon_id = wp_insert_post( $coupon );

// Add meta
update_post_meta( $new_coupon_id, 'discount_type', $discount_type );
update_post_meta( $new_coupon_id, 'coupon_amount', $amount );
update_post_meta( $new_coupon_id, 'individual_use', 'no' );
update_post_meta( $new_coupon_id, 'product_ids', '' );
update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );
update_post_meta( $new_coupon_id, 'usage_limit', '' );
update_post_meta( $new_coupon_id, 'expiry_date', '' );
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta( $new_coupon_id, 'free_shipping', 'no' );

2 个答案:

答案 0 :(得分:2)

  

不推荐get_currentuserinfo()函数。请改用 wp_get_current_user()

您应该在代码中使用:

// (Optional) depending where you are using this code
is_user_logged_in(){

    global $current_user;

    // If global $current_user is not working
    if(empty($current_user))
        $current_user = wp_get_current_user();

    // Here goes all your other code below… …

}

之后,我从未试图以编程方式设置电子邮件作为优惠券代码slug,但它应该可行,因为它可以在woocommerce中设置带有电子邮件地址的优惠券代码(我已经成功测试了它) ...

答案 1 :(得分:1)

    add_action( 'user_register', 'coupon_email', 10, 1 );

    function coupon_email( $user_id ) {

        if ( isset( $_POST['email_address'] ) )
            $coupon = array(
        'post_title' => $_POST['email_address'],
        'post_content' => '',
        'post_status' => 'publish',
        'post_author' => 1,
        'post_type'     => 'shop_coupon'
    );

    $new_coupon_id = wp_insert_post( $coupon );

}

每次新用户注册您的网站时,都会添加一个优惠券,其中包含用户电子邮件地址作为标题和输入。