WC_Coupon_Data_Store_CPT::decrease_usage_count( WC_Coupon $coupon, string $used_by = '' )
Decrease usage count for current coupon.
Description Description
Parameters Parameters
- $coupon
-
(Required) Coupon object.
- $used_by
-
(Optional) Either user ID or billing email.
Default value: ''
Return Return
(int) New usage count.
Source Source
File: includes/data-stores/class-wc-coupon-data-store-cpt.php
public function decrease_usage_count( &$coupon, $used_by = '' ) { global $wpdb; $new_count = $this->update_usage_count_meta( $coupon, 'decrease' ); if ( $used_by ) { /** * We're doing this the long way because `delete_post_meta( $id, $key, $value )` deletes. * all instances where the key and value match, and we only want to delete one. */ $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_used_by' AND meta_value = %s AND post_id = %d LIMIT 1;", $used_by, $coupon->get_id() ) ); if ( $meta_id ) { delete_metadata_by_mid( 'post', $meta_id ); $coupon->set_used_by( (array) get_post_meta( $coupon->get_id(), '_used_by' ) ); } } do_action( 'woocommerce_decrease_coupon_usage_count', $coupon, $new_count, $used_by ); return $new_count; }
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |