2

How to Update Coupon Code Objects in Woocommerce (Wordpress).

$beforeadduseremail="test@gmail.com";

update_post_meta( 21, 'email_restrictions', $beforeadduseremail);
LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
Karthik
  • 5,589
  • 18
  • 46
  • 78

1 Answers1

2

It can be done in different ways:

Using Wordpress get_post_meta() and update_post_meta() on customer_email meta key:

$coupon_post_id = 21; // The post ID
$user_email     = 'test@gmail.com'; // The email to be added

// Get existing email restrictions
$email_restrictions = (array) get_post_meta( $coupon_post_id, 'customer_email', true );

// Add the new email to existing emails
if ( ! in_array( $user_email, $email_restrictions ) ) {
    $email_restrictions[] = $user_email;
}

// Set a back updated email restrictions array
update_post_meta( $coupon_post_id, 'customer_email', $email_restrictions );

Using CRUD methods on the WC_Coupon object instance (since WooCommerce 3):

$coupon_code = 'happysummer'; // The coupon code
$user_email  = 'test@gmail.com'; // The email to be added

    // Get an instance of the WC_Coupon object
    $coupon = new WC_Coupon( $coupon_code );

    // Get email restrictions
    $email_restrictions = (array) $coupon->get_email_restrictions();

    // Add the customer email to the restrictions array
    $email_restrictions[] = $customer_email;

    // set the new array of email restrictions
    $coupon->set_email_restrictions( $email_restrictions );

    // Save the coupon data
    $coupon->save();
LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399