LLMS_Payment_Gateway_Manual::handle_pending_order( LLMS_Order $order, LLMS_Access_Plan $plan, LLMS_Student $student, LLMS_Coupon|boolean $coupon = false )

Handle a Pending Order.


Parameters Parameters

$order

(LLMS_Order) (Required) Order object.

$plan

(LLMS_Access_Plan) (Required) Access plan object.

$student

(LLMS_Student) (Required) Student object.

$coupon

(LLMS_Coupon|boolean) (Optional) Coupon object or false when no coupon is being used for the order.

Default value: false


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/class.llms.gateway.manual.php

167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
public function handle_pending_order( $order, $plan, $student, $coupon = false ) {
 
    // Free orders (no payment is due).
    if ( floatval( 0 ) === $order->get_initial_price( array(), 'float' ) ) {
 
        // Free access plans do not generate receipts.
        if ( $plan->is_free() ) {
 
            $order->set( 'status', 'llms-completed' );
 
            // Free trial, reduced to free via coupon, etc....
            // We do want to record a transaction and then generate a receipt.
        } else {
 
            // Record a $0.00 transaction to ensure a receipt is sent.
            $order->record_transaction(
                array(
                    'amount'             => floatval( 0 ),
                    'source_description' => __( 'Free', 'lifterlms' ),
                    'transaction_id'     => uniqid(),
                    'status'             => 'llms-txn-succeeded',
                    'payment_gateway'    => 'manual',
                    'payment_type'       => 'single',
                )
            );
 
        }
 
        return $this->complete_transaction( $order );
 
    }
 
    /**
     * Action triggered when a manual payment is due.
     *
     * @hooked LLMS_Notification: manual_payment_due - 10
     *
     * @since Unknown.
     *
     * @param LLMS_Order                  $order   The order object.
     * @param LLMS_Payment_Gateway_Manual $gateway Manual gateway instance.
     */
    do_action( 'llms_manual_payment_due', $order, $this );
 
    /**
     * Action triggered when the pending order processing has been completed.
     *
     * @since Unknown.
     *
     * @param LLMS_Order $order The order object.
     */
    do_action( 'lifterlms_handle_pending_order_complete', $order );
 
    llms_redirect_and_exit( $order->get_view_link() );
 
}


Top ↑

Changelog Changelog

Changelog
Version Description
6.4.0 Use llms_redirect_and_exit() in favor of wp_redirect() and exit().
3.10.0 Unknown.
3.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.