LLMS_AJAX_Handler::validate_coupon_code( array $request )
Validate a Coupon via the Checkout Form
Parameters Parameters
- $request
-
(array) (Required) $_POST data.
Return Return
(array|WP_Error) On success, returns an array containing HTML parts used to update the interface of the checkout screen. On error, returns an error object with details of the encountered error.
Source Source
File: includes/class.llms.ajax.handler.php
if ( empty( $request['code'] ) ) {
$error->add( 'error', __( 'Please enter a coupon code.', 'lifterlms' ) );
} elseif ( empty( $request['plan_id'] ) ) {
$error->add( 'error', __( 'Please enter a plan ID.', 'lifterlms' ) );
} else {
$cid = llms_find_coupon( $request['code'] );
if ( ! $cid ) {
// Translators: %s = coupon code.
$error->add( 'error', sprintf( __( 'Coupon code "%s" not found.', 'lifterlms' ), $request['code'] ) );
} else {
$coupon = new LLMS_Coupon( $cid );
$valid = $coupon->is_valid( $request['plan_id'] );
if ( is_wp_error( $valid ) ) {
$error = $valid;
} else {
llms()->session->set(
'llms_coupon',
array(
'plan_id' => $request['plan_id'],
'coupon_id' => $coupon->get( 'id' ),
)
);
$plan = new LLMS_Access_Plan( $request['plan_id'] );
ob_start();
llms_get_template(
'checkout/form-coupon.php',
array(
'coupon' => $coupon,
)
);
$coupon_html = ob_get_clean();
ob_start();
llms_get_template(
'checkout/form-gateways.php',
array(
'coupon' => $coupon,
'gateways' => llms()->payment_gateways()->get_enabled_payment_gateways(),
'selected_gateway' => llms()->payment_gateways()->get_default_gateway(),
'plan' => $plan,
)
);
$gateways_html = ob_get_clean();
ob_start();
llms_get_template(
'checkout/form-summary.php',
array(
'coupon' => $coupon,
'plan' => $plan,
'product' => $plan->get_product(),
)
);
$summary_html = ob_get_clean();
return array(
'code' => $coupon->get( 'title' ),
'coupon_html' => $coupon_html,
'gateways_html' => $gateways_html,
'summary_html' => $summary_html,
);
}
}
}
return $error;
}
/**
* Create course's section.
*
* @since Unknown
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 4.21.1 | Sanitize user-submitted coupon code before outputting in error messages. |
| 3.39.0 | Minor changes to code for readability with no changes to function behavior. |
| 3.0.0 | Introduced. |