LLMS_Meta_Box_Coupon::save( int $post_id )

Save all metadata


Parameters Parameters

$post_id

(int) (Required) WP Post ID.


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/admin/post-types/meta-boxes/class.llms.meta.box.coupon.php

	protected function save( $post_id ) {

		if ( ! llms_verify_nonce( 'lifterlms_meta_nonce', 'lifterlms_save_data' ) ) {
			return;
		}

		$coupon = new LLMS_Coupon( $post_id );

		// Dupcheck the title.
		$exists = llms_find_coupon( $coupon->get( 'title' ), $post_id );
		if ( $exists ) {
			$this->add_error( __( 'Coupon code already exists. Customers will use the most recently created coupon with this code.', 'lifterlms' ) );
		}

		// Trial validation.
		$trial_discount = llms_filter_input_sanitize_string( INPUT_POST, $this->prefix . 'enable_trial_discount' );
		$trial_amount   = llms_filter_input( INPUT_POST, $this->prefix . 'trial_amount', FILTER_SANITIZE_NUMBER_INT );
		if ( ! $trial_discount ) {
			$trial_discount = 'no';
		} elseif ( 'yes' === $trial_discount && empty( $trial_amount ) ) {
			$this->add_error( __( 'A Trial Discount Amount was not supplied. Trial Pricing Discount has automatically been disabled. Please re-enable Trial Pricing Discount and enter a Trial Discount Amount, then save this coupon again.', 'lifterlms' ) );
			$trial_discount = 'no';
		}

		$coupon->set( 'enable_trial_discount', $trial_discount );
		$coupon->set( 'trial_amount', $trial_amount );

		$courses = llms_filter_input( INPUT_POST, $this->prefix . 'coupon_courses', FILTER_SANITIZE_NUMBER_INT, FILTER_REQUIRE_ARRAY );
		if ( empty( $courses ) ) {
			$courses = array();
		}

		$coupon->set( 'coupon_courses', $courses );

		$memberships = llms_filter_input( INPUT_POST, $this->prefix . 'coupon_membership', FILTER_SANITIZE_NUMBER_INT, FILTER_REQUIRE_ARRAY );
		if ( empty( $memberships ) ) {
			$memberships = array();
		}

		$coupon->set( 'coupon_membership', $memberships );

		// Save all the fields.
		$fields = array(
			'coupon_amount',
			'usage_limit',
			'discount_type',
			'description',
			'expiration_date',
			'plan_type',
		);
		foreach ( $fields as $field ) {
			if ( isset( $_POST[ $this->prefix . $field ] ) ) {
				$coupon->set( $field, llms_filter_input_sanitize_string( INPUT_POST, $this->prefix . $field ) );
			}
		}

	}


Top ↑

Changelog Changelog

Changelog
Version Description
5.9.0 Stop using deprecated FILTER_SANITIZE_STRING.
3.35.0 Sanitize $_POST data and verify nonce.
3.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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