autoship_qpilot_orders_update_via_rest_apply_coupons (function)
(src/coupons.php) Hooks into the Order Save and applies QPilot virtual coupons. Takes whether tax is applied and the order as parameters.
/** * Hook into the Order Save and Applies any QPilot Virtual Coupons * @param bool $and_taxes True if Taxes should be calculated. * @param WC_Abstract_Order $order The current order. */ function autoship_qpilot_orders_update_via_rest_apply_coupons( $and_taxes, $order ){ // Only continue if the order is via the rest api and if it's a if ( !( $order instanceof WC_Order ) || ( 'rest-api' != $order->get_created_via() ) ) return; // We Use the Processing ID to ensure even though the order came through rest-api it's // a QPilot generated order. $id = autoship_get_scheduled_order_processing_id( $order ); if ( apply_filters( 'autoship_qpilot_orders_update_via_rest_apply_coupons', empty( $id ), $id, $order ) ) return; // Get the virtual coupons for the order and if they exist apply them. $coupons = autoship_get_order_associated_virtual_wc_coupons( $order ); if ( !empty( $coupons ) ){ /** * Iterate through associated coupons and apply them. * NOTE No need to check if they already exist since apply_coupon * does that and ignores if they do. */ foreach ($coupons as $code => $coupon){ $order->apply_coupon($coupon); } } }