WC_Coupon_Data_Store_CPT::get_tentative_usage_query_for_user()
Generate query to calculate tentative usages for the coupon by the user.
Method of the class: WC_Coupon_Data_Store_CPT{}
No Hooks.
Return
String
. Tentative usages query.
Usage
// private - for code of main (parent) class only $result = $this->get_tentative_usage_query_for_user( $coupon_id, $user_aliases );
- $coupon_id(int) (required)
- Coupon ID.
- $user_aliases(array) (required)
- List of user aliases to check for usages.
WC_Coupon_Data_Store_CPT::get_tentative_usage_query_for_user() WC Coupon Data Store CPT::get tentative usage query for user code WC 9.4.2
private function get_tentative_usage_query_for_user( $coupon_id, $user_aliases ) { global $wpdb; $format = implode( "','", array_fill( 0, count( $user_aliases ), '%s' ) ); // Note that if you are debugging, `_maybe_used_by_%` will be converted to `_maybe_used_by_{...very long str...}` to very long string. This is expected, and is automatically corrected while running the insert query. return $wpdb->prepare( " SELECT COUNT( meta_id ) FROM $wpdb->postmeta WHERE {$wpdb->postmeta}.meta_key like %s AND {$wpdb->postmeta}.meta_key > %s AND {$wpdb->postmeta}.post_id = %d AND {$wpdb->postmeta}.meta_value IN ('$format') FOR UPDATE ", array_merge( array( '_maybe_used_by_%', '_maybe_used_by_' . time(), $coupon_id, ), $user_aliases ) ); // WPCS: unprepared SQL ok. }