Automattic\WooCommerce\Internal\DataStores\Orders

OrdersTableDataStore::release_held_coupons()publicWC 1.0

Release all coupons held by this order.

Method of the class: OrdersTableDataStore{}

No Hooks.

Return

null. Nothing (null).

Usage

$OrdersTableDataStore = new OrdersTableDataStore();
$OrdersTableDataStore->release_held_coupons( $order, $save );
$order(WC_Order) (required)
Current order object.
$save(true|false)
Whether to delete keys from DB right away. Could be useful to pass false if you are building a bulk request.
Default: true

OrdersTableDataStore::release_held_coupons() code WC 9.3.3

public function release_held_coupons( $order, $save = true ) {
	$coupon_held_keys = $this->get_coupon_held_keys( $order );
	if ( is_array( $coupon_held_keys ) ) {
		foreach ( $coupon_held_keys as $coupon_id => $meta_key ) {
			$coupon = new \WC_Coupon( $coupon_id );
			$coupon->delete_meta_data( $meta_key );
			$coupon->save_meta_data();
		}
	}
	$order->delete_meta_data( '_coupon_held_keys' );

	$coupon_held_keys_for_users = $this->get_coupon_held_keys_for_users( $order );
	if ( is_array( $coupon_held_keys_for_users ) ) {
		foreach ( $coupon_held_keys_for_users as $coupon_id => $meta_key ) {
			$coupon = new \WC_Coupon( $coupon_id );
			$coupon->delete_meta_data( $meta_key );
			$coupon->save_meta_data();
		}
	}
	$order->delete_meta_data( '_coupon_held_keys_for_users' );

	if ( $save ) {
		$order->save_meta_data();
	}
}