'appmaker_wc_app_only_coupon', 'label' => __( 'App only coupon', 'woocommerce' ), 'description' => __( 'Check this box if the coupon only applied from app.', 'woocommerce' ), ) ); } public function app_coupon_option_save( $post_id ) { $appmaker_wc_app_only_coupon = isset( $_POST['appmaker_wc_app_only_coupon'] ) ? 'yes' : 'no'; update_post_meta( $post_id, 'appmaker_wc_app_only_coupon', $appmaker_wc_app_only_coupon ); } /** * @param $valid * @param WC_Coupon $coupon * * @return bool */ public function app_woocommerce_coupon_code_validate( $valid, $coupon ) { if ( get_post_meta( $this->get_coupon_id( $coupon ), 'appmaker_wc_app_only_coupon', 'no' ) == 'yes' && ! defined( 'APPMAKER_WC_REQUEST' ) ) { return false; } return $valid; } /** * @param $err * @param $err_code * @param WC_Coupon $coupon */ public function app_woocommerce_coupon_error( $err, $err_code, $coupon ) { if ( get_post_meta( $this->get_coupon_id( $coupon ), 'appmaker_wc_app_only_coupon', 'no' ) == 'yes' && $err_code == WC_Coupon::E_WC_COUPON_INVALID_FILTERED && ! defined( 'APPMAKER_WC_REQUEST' ) ) { return __( 'Sorry, this coupon only valid for app users.', 'woocommerce' ); } return $err; } /** * To make compatible with old and new version of woocommerce * * @param WC_Coupon $coupon * * @return int */ public function get_coupon_id( $coupon ) { if ( method_exists( $coupon,'get_id' ) ) { return $coupon->get_id(); } else { return $coupon->id; } } } new APPMAKER_WC_Coupon();