WC_Coupon_Data_Store_CPT::update_post_meta()
Helper method that updates all the post meta for a coupon based on it's settings in the WC_Coupon class.
Метод класса: WC_Coupon_Data_Store_CPT{}
Хуки из метода
Возвращает
null
. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->update_post_meta( $coupon );
- $coupon(WC_Coupon) (обязательный) (передается по ссылке — &)
- Coupon object.
Список изменений
С версии 3.0.0 | Введена. |
Код WC_Coupon_Data_Store_CPT::update_post_meta() WC Coupon Data Store CPT::update post meta WC 8.7.0
private function update_post_meta( &$coupon ) { $meta_key_to_props = array( 'discount_type' => 'discount_type', 'coupon_amount' => 'amount', 'individual_use' => 'individual_use', 'product_ids' => 'product_ids', 'exclude_product_ids' => 'excluded_product_ids', 'usage_limit' => 'usage_limit', 'usage_limit_per_user' => 'usage_limit_per_user', 'limit_usage_to_x_items' => 'limit_usage_to_x_items', 'usage_count' => 'usage_count', 'date_expires' => 'date_expires', 'free_shipping' => 'free_shipping', 'product_categories' => 'product_categories', 'exclude_product_categories' => 'excluded_product_categories', 'exclude_sale_items' => 'exclude_sale_items', 'minimum_amount' => 'minimum_amount', 'maximum_amount' => 'maximum_amount', 'customer_email' => 'email_restrictions', ); $props_to_update = $this->get_props_to_update( $coupon, $meta_key_to_props ); foreach ( $props_to_update as $meta_key => $prop ) { $value = $coupon->{"get_$prop"}( 'edit' ); $value = is_string( $value ) ? wp_slash( $value ) : $value; switch ( $prop ) { case 'individual_use': case 'free_shipping': case 'exclude_sale_items': $value = wc_bool_to_string( $value ); break; case 'product_ids': case 'excluded_product_ids': $value = implode( ',', array_filter( array_map( 'intval', $value ) ) ); break; case 'product_categories': case 'excluded_product_categories': $value = array_filter( array_map( 'intval', $value ) ); break; case 'email_restrictions': $value = array_filter( array_map( 'sanitize_email', $value ) ); break; case 'date_expires': $value = $value ? $value->getTimestamp() : null; break; } $updated = $this->update_or_delete_post_meta( $coupon, $meta_key, $value ); if ( $updated ) { $this->updated_props[] = $prop; } } do_action( 'woocommerce_coupon_object_updated_props', $coupon, $this->updated_props ); }