From 36d7d082d5fc0798116777fc48b6133e26bb1d6d Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Mon, 29 Jan 2024 10:25:14 +0600 Subject: [PATCH 01/18] fix: WC attribute support from frontend form fix: WC attribute support from frontend form --- includes/Frontend/Frontend_Form.php | 13 ------------- includes/Traits/FieldableTrait.php | 28 +++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/includes/Frontend/Frontend_Form.php b/includes/Frontend/Frontend_Form.php index 17216647d..71547d29c 100755 --- a/includes/Frontend/Frontend_Form.php +++ b/includes/Frontend/Frontend_Form.php @@ -315,19 +315,6 @@ public function add_post_shortcode( $atts ) { return $content; } - public function woo_attribute( $taxonomy ) { - check_ajax_referer( 'wpuf_form_add' ); - $taxonomy_name = isset( $_POST[ $taxonomy['name'] ] ) ? sanitize_text_field( wp_unslash( $_POST[ $taxonomy['name'] ] ) ) : ''; - - return [ - 'name' => $taxonomy['name'], - 'value' => $taxonomy_name, - 'is_visible' => $taxonomy['woo_attr_vis'] === 'yes' ? 1 : 0, - 'is_variation' => 0, - 'is_taxonomy' => 1, - ]; - } - /** * Hook to publish verified guest post with payment * diff --git a/includes/Traits/FieldableTrait.php b/includes/Traits/FieldableTrait.php index bf5f3fa53..a31560ffe 100644 --- a/includes/Traits/FieldableTrait.php +++ b/includes/Traits/FieldableTrait.php @@ -235,7 +235,7 @@ public function validate_rs_captcha() { $rs_captcha_file = isset( $_POST['rs_captcha_val'] ) ? sanitize_text_field( wp_unslash( $_POST['rs_captcha_val'] ) ) : ''; if ( class_exists( 'ReallySimpleCaptcha' ) ) { - $captcha_instance = new ReallySimpleCaptcha(); + $captcha_instance = new \ReallySimpleCaptcha(); if ( ! $captcha_instance->check( $rs_captcha_file, $rs_captcha_input ) ) { wpuf()->ajax->send_error( __( 'Really Simple Captcha validation failed', 'wp-user-frontend' ) ); @@ -267,7 +267,7 @@ public function validate_re_captcha( $no_captcha = '', $invisible = '' ) { } $response = null; - $reCaptcha = new WPUF_ReCaptcha( $private_key ); + $reCaptcha = new \WPUF_ReCaptcha( $private_key ); $resp = $reCaptcha->verifyResponse( $remote_addr, @@ -448,7 +448,7 @@ function ( $term_name ) use ( $taxonomy ) { return null; } - if ( $term instanceof WP_Term ) { + if ( $term instanceof \WP_Term ) { return $term->term_id; } @@ -716,4 +716,26 @@ public function search( $array, $key, $value ) { return $results; } + + /** + * Get WooCommerce attributres + * + * @since WPUF_SINCE moved from Render_Form.php to FieldableTrait.php + * + * @param array $taxonomy + * + * @return array + */ + public function woo_attribute( $taxonomy ) { + check_ajax_referer( 'wpuf_form_add' ); + $taxonomy_name = isset( $_POST[ $taxonomy['name'] ] ) ? sanitize_text_field( wp_unslash( $_POST[ $taxonomy['name'] ] ) ) : ''; + + return [ + 'name' => $taxonomy['name'], + 'value' => $taxonomy_name, + 'is_visible' => $taxonomy['woo_attr_vis'] === 'yes' ? 1 : 0, + 'is_variation' => 0, + 'is_taxonomy' => 1, + ]; + } } From 315cc997dcdac3ae6240a164c4fe98b678fa3982 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Tue, 30 Jan 2024 12:37:30 +0600 Subject: [PATCH 02/18] fix: Admin Bar Visibility and Access --- includes/Admin.php | 26 ++++++++++++++++++++++++++ includes/Frontend.php | 30 ++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/includes/Admin.php b/includes/Admin.php index 5de4f6e66..15543b738 100644 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -39,6 +39,9 @@ public function __construct() { // enqueue common scripts that will load throughout WordPress dashboard. notice, what's new etc. add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_common_scripts' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_cpt_page_scripts' ] ); + + // block admin access as per wpuf settings + add_action( 'admin_init', [ $this, 'block_admin_access' ] ); } /** @@ -130,4 +133,27 @@ public function enqueue_cpt_page_scripts( $hook_suffix ) { } } } + + /** + * Block user access to admin panel for specific roles + * + * @global string $pagenow + */ + public function block_admin_access() { + global $pagenow; + + // bail out if we are from WP Cli + if ( defined( 'WP_CLI' ) ) { + return; + } + + $access_level = wpuf_get_option( 'admin_access', 'wpuf_general', 'read' ); + $valid_pages = [ 'admin-ajax.php', 'admin-post.php', 'async-upload.php', 'media-upload.php' ]; + + if ( ! current_user_can( $access_level ) && ! in_array( $pagenow, $valid_pages ) ) { + // wp_die( __( 'Access Denied. Your site administrator has blocked your access to the WordPress back-office.', 'wpuf' ) ); + wp_redirect( home_url() ); + exit; + } + } } diff --git a/includes/Frontend.php b/includes/Frontend.php index c1c3423c4..1d27c19aa 100644 --- a/includes/Frontend.php +++ b/includes/Frontend.php @@ -25,6 +25,9 @@ public function __construct() { $this->form_preview = new Frontend\Form_Preview(); add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); + + // show admin bar as per wpuf settings + add_filter( 'show_admin_bar', [ $this, 'show_admin_bar' ] ); } /** @@ -159,4 +162,31 @@ private function dokan_is_seller_dashboard() { && dokan_is_seller_dashboard() && ! empty( $wp->query_vars['posts'] ); } + + + + /** + * Show/hide admin bar to the permitted user level + * + * @since 2.2.3 + * + * @return bool + */ + public function show_admin_bar( $val ) { + if ( ! is_user_logged_in() ) { + return false; + } + + $roles = wpuf_get_option( 'show_admin_bar', 'wpuf_general', [ 'administrator', 'editor', 'author', 'contributor', 'subscriber' ] ); + $roles = $roles && is_string( $roles ) ? [ strtolower( $roles ) ] : $roles; + $current_user = wp_get_current_user(); + + if ( ! empty( $current_user->roles ) && ! empty( $current_user->roles[0] ) ) { + if ( ! in_array( $current_user->roles[0], $roles ) ) { + return false; + } + } + + return $val; + } } From 154b700d01c5b731381b67e8ddc203181761ef17 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Wed, 31 Jan 2024 09:11:26 +0600 Subject: [PATCH 03/18] fix: error after PayPal payment --- Lib/Gateway/Paypal.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Lib/Gateway/Paypal.php b/Lib/Gateway/Paypal.php index cbe5bd85e..c2029f645 100644 --- a/Lib/Gateway/Paypal.php +++ b/Lib/Gateway/Paypal.php @@ -175,7 +175,7 @@ public function prepare_to_send( $data ) { $billing_amount = empty( $data['price'] ) ? 0 : $data['price']; if ( isset( $_POST['coupon_id'] ) && ! empty( $_POST['coupon_id'] ) ) { - $billing_amount = WPUF_Coupons::init()->discount( $billing_amount, $_POST['coupon_id'], $data['item_number'] ); + $billing_amount = wpuf_pro()->coupon->discount( $billing_amount, $_POST['coupon_id'], $data['item_number'] ); $coupon_id = $_POST['coupon_id']; } else { @@ -342,7 +342,7 @@ public function paypal_success() { $insert_payment = false; if ( isset( $_GET['action'] ) && $_GET['action'] == 'wpuf_paypal_success' ) { - WP_User_Frontend::log( 'paypal-payment-info', print_r( $_POST, true ) ); + \WP_User_Frontend::log( 'paypal-payment-info', print_r( $_POST, true ) ); $postdata = $_POST; $type = $postdata['custom']; @@ -361,7 +361,7 @@ public function paypal_success() { } if ( isset( $postdata['txn_type'] ) && ( $postdata['txn_type'] == 'subscr_signup' ) ) { - WP_User_Frontend::log( 'paypal-recurring', 'got subscriber with email ' . $postdata['payer_email'] ); + \WP_User_Frontend::log( 'paypal-recurring', 'got subscriber with email ' . $postdata['payer_email'] ); return; } @@ -385,14 +385,14 @@ public function paypal_success() { $is_recurring = true; $status = 'subscr_payment'; - WP_User_Frontend::log( 'paypal-recurring', 'got subscr_payment, should insert of pack_id: ' . $pack_id ); + \WP_User_Frontend::log( 'paypal-recurring', 'got subscr_payment, should insert of pack_id: ' . $pack_id ); } else { $this->subscription_cancel( $custom->user_id ); - WP_User_Frontend::log( 'paypal-recurring', 'got subscr_payment. billing validation failed, cancel subscription. user_id: ' . $custom->user_id ); + \WP_User_Frontend::log( 'paypal-recurring', 'got subscr_payment. billing validation failed, cancel subscription. user_id: ' . $custom->user_id ); } } elseif ( isset( $postdata['txn_type'] ) && ( $postdata['txn_type'] == 'web_accept' ) && ( strtolower( $postdata['payment_status'] ) == 'completed' ) ) { - WP_User_Frontend::log( 'paypal', 'got web_accept. type: ' . $custom->type . '. item_number: ' . $item_number ); + \WP_User_Frontend::log( 'paypal', 'got web_accept. type: ' . $custom->type . '. item_number: ' . $item_number ); //verify payment $status = 'web_accept'; @@ -450,9 +450,9 @@ public function paypal_success() { 'created' => current_time( 'mysql' ), ]; - WP_User_Frontend::log( 'payment', 'inserting payment to database. ' . print_r( $data, true ) ); + \WP_User_Frontend::log( 'payment', 'inserting payment to database. ' . print_r( $data, true ) ); - _Payment::insert_payment( $data, $transaction_id, $is_recurring ); + \WeDevs\Wpuf\Frontend\Payment::insert_payment( $data, $transaction_id, $is_recurring ); if ( $coupon_id ) { $pre_usage = get_post_meta( $coupon_id, '_coupon_used', true ); @@ -493,7 +493,7 @@ public function handle_cancel_subscription( $data ) { * @return bool */ public function validateIpn() { - WP_User_Frontend::log( 'paypal', 'Checking if PayPal IPN response is valid' ); + \WP_User_Frontend::log( 'paypal', 'Checking if PayPal IPN response is valid' ); $this->set_mode(); @@ -518,20 +518,20 @@ public function validateIpn() { } $response = wp_safe_remote_post( $this->gateway_url, $params ); - WP_User_Frontend::log( 'paypal', 'IPN Request: ' . print_r( $params, true ) ); - WP_User_Frontend::log( 'paypal', 'IPN Response: ' . print_r( $response, true ) ); + \WP_User_Frontend::log( 'paypal', 'IPN Request: ' . print_r( $params, true ) ); + \WP_User_Frontend::log( 'paypal', 'IPN Response: ' . print_r( $response, true ) ); // check to see if the request was valid if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) { - WP_User_Frontend::log( 'paypal', 'Received valid response from PayPal' ); + \WP_User_Frontend::log( 'paypal', 'Received valid response from PayPal' ); return true; } - WP_User_Frontend::log( 'paypal', 'Received invalid response from PayPal' ); + \WP_User_Frontend::log( 'paypal', 'Received invalid response from PayPal' ); if ( is_wp_error( $response ) ) { - WP_User_Frontend::log( 'paypal', 'Error response: ' . $response->get_error_message() ); + \WP_User_Frontend::log( 'paypal', 'Error response: ' . $response->get_error_message() ); } return false; From 100c5a0d0ae531e2ae7d402f6ce08f4ce4b21df7 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Thu, 1 Feb 2024 16:19:59 +0600 Subject: [PATCH 04/18] fix: class references fixed - class references - warning for dynamic property --- Lib/Appsero/Insights.php | 8 +++---- Lib/invisible_recaptcha.php | 5 ++-- admin/class-admin-settings.php | 8 ++++--- .../components/field-visibility/template.php | 6 +++-- assets/js-templates/form-components.php | 6 +++-- class/subscription.php | 8 +++---- includes/Admin/Admin_Settings.php | 8 ++++--- includes/Admin/Admin_Tools.php | 6 +++-- includes/Admin/Dashboard_Metabox.php | 11 +++++---- includes/Admin/Forms/Field_Manager.php | 3 ++- includes/Admin/Forms/Form.php | 1 + .../Templates/List_Table_Admin_Post_Forms.php | 3 ++- .../Post/Templates/Pro_Form_Preview_EDD.php | 3 +++ includes/Admin/List_Table_Subscribers.php | 4 +++- includes/Admin/List_Table_Transactions.php | 3 ++- includes/Admin/Promotion.php | 7 ++++-- includes/Admin/Subscription.php | 5 ++-- includes/Admin/Whats_New.php | 23 ++++++++++++------- includes/Ajax/Frontend_Form_Ajax.php | 7 ++++-- includes/Encryption_Helper.php | 4 +++- includes/Fields/Form_Field_Post_Taxonomy.php | 5 +++- includes/Free/Edit_Profile.php | 2 +- includes/Free/Simple_Login.php | 13 ++++++----- includes/Frontend.php | 1 + includes/Frontend/Frontend_Account.php | 3 ++- includes/Frontend/Frontend_Form.php | 3 ++- includes/Frontend/Payment.php | 6 +++-- includes/Log/WPUF_Log.php | 2 +- includes/Traits/FieldableTrait.php | 3 ++- includes/Traits/TaxableTrait.php | 6 +++-- includes/User_Subscription.php | 8 +++---- includes/WPUF_Privacy.php | 4 +++- includes/WPUF_User.php | 6 +++-- includes/Widgets/Login_Widget.php | 6 +++-- includes/class-field-manager.php | 2 +- includes/upgrades/upgrade-2.1.9.php | 4 +++- includes/upgrades/upgrade-2.6.0.php | 4 +++- wpuf-functions.php | 6 ++--- wpuf.php | 2 +- 39 files changed, 138 insertions(+), 77 deletions(-) diff --git a/Lib/Appsero/Insights.php b/Lib/Appsero/Insights.php index 95f4e59b9..efc99c5b8 100644 --- a/Lib/Appsero/Insights.php +++ b/Lib/Appsero/Insights.php @@ -65,7 +65,7 @@ public function __construct($client, $name = null, $file = null) /** * Don't show the notice * - * @return \self + * @return self */ public function hide_notice() { @@ -77,7 +77,7 @@ public function hide_notice() /** * Add plugin data if needed * - * @return \self + * @return self */ public function add_plugin_data() { @@ -91,7 +91,7 @@ public function add_plugin_data() * * @param array $data * - * @return \self + * @return self */ public function add_extra($data = []) { @@ -105,7 +105,7 @@ public function add_extra($data = []) * * @param string $text * - * @return \self + * @return self */ public function notice($text = '') { diff --git a/Lib/invisible_recaptcha.php b/Lib/invisible_recaptcha.php index 5f32073b2..ec365aa69 100644 --- a/Lib/invisible_recaptcha.php +++ b/Lib/invisible_recaptcha.php @@ -16,12 +16,13 @@ * */ +#[AllowDynamicProperties] class Invisible_Recaptcha{ private static $_signupUrl = "https://www.google.com/recaptcha/admin"; public function __construct( $site_key, $secret_key ){ - + if ( $secret_key == null || $secret_key == "" ) { die("To use reCAPTCHA you must get an API key from " . self::$_signupUrl . ""); @@ -32,7 +33,7 @@ public function __construct( $site_key, $secret_key ){ ); } - + public function verifyResponse($recaptcha){ $remoteIp = $this->getIPAddress(); diff --git a/admin/class-admin-settings.php b/admin/class-admin-settings.php index 9c3a1cea6..1aaa7163b 100644 --- a/admin/class-admin-settings.php +++ b/admin/class-admin-settings.php @@ -3,26 +3,28 @@ /** * WPUF settings */ + +#[AllowDynamicProperties] class WPUF_Admin_Settings { /** * Settings API * - * @var \WeDevs_Settings_API + * @var WeDevs_Settings_API */ private $settings_api; /** * Static instance of this class * - * @var \self + * @var self */ private static $_instance; /** * Public instance of this class * - * @var \self + * @var self */ public $subscribers_list_table_obj; diff --git a/admin/form-builder/assets/js/components/field-visibility/template.php b/admin/form-builder/assets/js/components/field-visibility/template.php index e560d002e..661c65781 100644 --- a/admin/form-builder/assets/js/components/field-visibility/template.php +++ b/admin/form-builder/assets/js/components/field-visibility/template.php @@ -13,7 +13,9 @@
- +
    get_subscriptions(); + $subscriptions = (new Subscription())->get_subscriptions(); if ( $subscriptions ) { foreach ( $subscriptions as $pack ) { diff --git a/assets/js-templates/form-components.php b/assets/js-templates/form-components.php index 33f5a4004..d0864a2a0 100644 --- a/assets/js-templates/form-components.php +++ b/assets/js-templates/form-components.php @@ -1,7 +1,9 @@ diff --git a/includes/Free/Simple_Login.php b/includes/Free/Simple_Login.php index 26674dd05..7306d04f7 100644 --- a/includes/Free/Simple_Login.php +++ b/includes/Free/Simple_Login.php @@ -4,6 +4,7 @@ use WeDevs\Wpuf\Render_Form; use WeDevs\Wpuf\WPUF_User; +use WP_Error; /** * Login and forgot password handler class @@ -157,7 +158,7 @@ public function validate_custom_fields( $user, $password ) { if ( $recaptcha === 'on' ) { if ( isset( $_REQUEST['g-recaptcha-response'] ) ) { if ( empty( $_REQUEST['g-recaptcha-response'] ) ) { - $user = new \WP_Error( 'WPUFLoginCaptchaError', 'Empty reCaptcha Field.' ); + $user = new WP_Error( 'WPUFLoginCaptchaError', 'Empty reCaptcha Field.' ); } else { $no_captcha = 1; $invisible_captcha = 0; @@ -425,7 +426,7 @@ public function process_login() { $pwd = isset( $_POST['pwd'] ) ? trim( $_POST['pwd'] ) : ''; // $g_recaptcha_response = isset( $_POST['g-recaptcha-response'] ) ? sanitize_text_field( wp_unslash( $_POST['g-recaptcha-response'] ) ) : ''; - $validation_error = new \WP_Error(); + $validation_error = new WP_Error(); $validation_error = apply_filters( 'wpuf_process_login_errors', $validation_error, $log, $pwd ); if ( $validation_error->get_error_code() ) { @@ -669,7 +670,7 @@ public function process_reset_password() { return; } - $errors = new \WP_Error(); + $errors = new WP_Error(); do_action( 'validate_password_reset', $errors, $user ); @@ -784,7 +785,7 @@ public function successfully_authenticate( $user, $username, $password ) { if ( ! is_wp_error( $user ) ) { if ( $user->ID ) { $resend_link = add_query_arg( 'resend_activation', $user->ID, $this->get_login_url() ); - $error = new \WP_Error(); + $error = new WP_Error(); $wpuf_user = new WPUF_User( $user->ID ); if ( ! $wpuf_user->is_verified() ) { @@ -916,10 +917,10 @@ public function activation_user_registration() { * * @since 2.2 * - * @return \WP_Error + * @return WP_Error */ public function user_activation_message() { - return new \WP_Error( 'user-activated', __( 'Your account has been activated', 'wp-user-frontend' ), 'message' ); + return new WP_Error( 'user-activated', __( 'Your account has been activated', 'wp-user-frontend' ), 'message' ); } public function wp_login_page_redirect() { diff --git a/includes/Frontend.php b/includes/Frontend.php index c1c3423c4..7b9cefc41 100644 --- a/includes/Frontend.php +++ b/includes/Frontend.php @@ -2,6 +2,7 @@ namespace WeDevs\Wpuf; +use AllowDynamicProperties; use WeDevs\WpUtils\ContainerTrait; /** diff --git a/includes/Frontend/Frontend_Account.php b/includes/Frontend/Frontend_Account.php index 5574eeffb..24a613398 100644 --- a/includes/Frontend/Frontend_Account.php +++ b/includes/Frontend/Frontend_Account.php @@ -2,6 +2,7 @@ namespace WeDevs\Wpuf\Frontend; +use stdClass; use WeDevs\Wpuf\Admin\Subscription; use WeDevs\Wpuf\User_Subscription; @@ -306,7 +307,7 @@ public function update_profile() { if ( empty( $email ) ) { wp_send_json_error( __( 'Email is a required field.', 'wp-user-frontend' ) ); } - $user = new \stdClass(); + $user = new stdClass(); $user->ID = $current_user->ID; $user->first_name = $first_name; $user->last_name = $last_name; diff --git a/includes/Frontend/Frontend_Form.php b/includes/Frontend/Frontend_Form.php index 17216647d..dbd5e8093 100755 --- a/includes/Frontend/Frontend_Form.php +++ b/includes/Frontend/Frontend_Form.php @@ -6,6 +6,7 @@ use WeDevs\Wpuf\Admin\Subscription; use WeDevs\Wpuf\Frontend_Render_Form; use WeDevs\Wpuf\Traits\FieldableTrait; +use WP_User; class Frontend_Form extends Frontend_Render_Form { use FieldableTrait; @@ -390,7 +391,7 @@ public function publish_guest_post() { * @param array $allcaps * @param array $caps * @param array $args - * @param \WP_User $wp_user + * @param WP_User $wp_user * * @return array */ diff --git a/includes/Frontend/Payment.php b/includes/Frontend/Payment.php index 64158fa3d..302e7b7cf 100644 --- a/includes/Frontend/Payment.php +++ b/includes/Frontend/Payment.php @@ -2,9 +2,11 @@ namespace WeDevs\Wpuf\Frontend; +use stdClass; use WeDevs\Wpuf\Admin; use WeDevs\Wpuf\Ajax; use WeDevs\Wpuf\WPUF_User; +use WP_Post; /** * WP User Frontend payment gateway handler @@ -67,7 +69,7 @@ public function get_active_gateways() { public function payment_page( $content ) { global $post; - if ( ! ( $post instanceof \WP_Post ) ) { + if ( ! ( $post instanceof WP_Post ) ) { return $content; } @@ -397,7 +399,7 @@ public function send_to_gateway() { $user_id = $post->post_author; $userdata = get_userdata( $user_id ); } else { - $userdata = new \stdClass(); + $userdata = new stdClass(); $userdata->ID = 0; $userdata->user_email = ''; $userdata->first_name = ''; diff --git a/includes/Log/WPUF_Log.php b/includes/Log/WPUF_Log.php index 4fd02ac11..49b7b37ae 100644 --- a/includes/Log/WPUF_Log.php +++ b/includes/Log/WPUF_Log.php @@ -5,7 +5,7 @@ class WPUF_Log { /** * wpdb query logger * - * @var \WPUF_Log_WPDB_Query + * @var WPUF_Log_WPDB_Query */ public $wpdb_query; diff --git a/includes/Traits/FieldableTrait.php b/includes/Traits/FieldableTrait.php index bf5f3fa53..f6a5af63b 100644 --- a/includes/Traits/FieldableTrait.php +++ b/includes/Traits/FieldableTrait.php @@ -2,6 +2,7 @@ namespace WeDevs\Wpuf\Traits; +use Invisible_Recaptcha; use WeDevs\Wpuf\Fields\Form_Field_Featured_Image; use WeDevs\Wpuf\Fields\Form_Field_Post_Content; use WeDevs\Wpuf\Fields\Form_Field_Post_Excerpt; @@ -289,7 +290,7 @@ public function validate_re_captcha( $no_captcha = '', $invisible = '' ) { } elseif ( $no_captcha == 0 && 1 == $invisible ) { $response = null; $recaptcha = isset( $_POST['g-recaptcha-response'] ) ? sanitize_text_field( wp_unslash( $_POST['g-recaptcha-response'] ) ) : ''; - $object = new \Invisible_Recaptcha( $site_key, $private_key ); + $object = new Invisible_Recaptcha( $site_key, $private_key ); $response = $object->verifyResponse( $recaptcha ); diff --git a/includes/Traits/TaxableTrait.php b/includes/Traits/TaxableTrait.php index 287c87029..778b8abad 100644 --- a/includes/Traits/TaxableTrait.php +++ b/includes/Traits/TaxableTrait.php @@ -7,6 +7,8 @@ exit; } +use WC_Countries; +use WC_Customer; use WeDevs\Wpuf\Admin\Forms\Form; use WeDevs\Wpuf\Data\Country_State; @@ -324,12 +326,12 @@ function wpuf_current_tax_rate() { $customer_id = get_current_user_id(); $woo_address = []; $rates = $this->wpuf_get_tax_rates(); - $customer = new \WC_Customer( $customer_id ); + $customer = new WC_Customer( $customer_id ); $woo_address = $customer->get_billing(); unset( $woo_address['email'], $woo_address['tel'], $woo_address['phone'], $woo_address['company'] ); - $countries_obj = new \WC_Countries(); + $countries_obj = new WC_Countries(); $countries_array = $countries_obj->get_countries(); $country_states_array = $countries_obj->get_states(); $woo_address['state'] = isset( $country_states_array[ $woo_address['country'] ][ $woo_address['state'] ] ) ? $country_states_array[ $woo_address['country'] ][ $woo_address['state'] ] : ''; diff --git a/includes/User_Subscription.php b/includes/User_Subscription.php index 678e17662..cb0774873 100644 --- a/includes/User_Subscription.php +++ b/includes/User_Subscription.php @@ -2,7 +2,7 @@ namespace WeDevs\Wpuf; -/** +use WP_Error;/** * User Subscription Class * * @since 2.6.0 @@ -48,7 +48,7 @@ public function populate_data() { /** * Get the current pack of the user * - * @return array|\WP_Error + * @return array|WP_Error */ public function current_pack() { $pack = $this->pack; @@ -56,12 +56,12 @@ public function current_pack() { if ( ! isset( $this->pack['pack_id'] ) ) { $pack_page = get_permalink( wpuf_get_option( 'subscription_page', 'wpuf_payment' ) ); - return new \WP_Error( 'no-pack', sprintf( __( 'You must purchase a subscription package before posting', 'wp-user-frontend' ), $pack_page ) ); + return new WP_Error( 'no-pack', sprintf( __( 'You must purchase a subscription package before posting', 'wp-user-frontend' ), $pack_page ) ); } // seems like the user has a pack, now check expiration if ( $this->expired() ) { - return new \WP_Error( 'expired', __( 'The subscription pack has expired. Please buy a pack.', 'wp-user-frontend' ) ); + return new WP_Error( 'expired', __( 'The subscription pack has expired. Please buy a pack.', 'wp-user-frontend' ) ); } return $pack; diff --git a/includes/WPUF_Privacy.php b/includes/WPUF_Privacy.php index 6bfda1090..64ae0ac6a 100644 --- a/includes/WPUF_Privacy.php +++ b/includes/WPUF_Privacy.php @@ -2,6 +2,8 @@ namespace WeDevs\Wpuf; +use WP_User; + /** * Class WPUF_Privacy * @@ -137,7 +139,7 @@ public function register_erasers( $erasers ) { * * @param string $email * - * @return \WP_User | String + * @return WP_User | String */ public static function get_user( $email ) { $user = get_user_by( 'email', $email ); diff --git a/includes/WPUF_User.php b/includes/WPUF_User.php index b12533fcd..c53ab824e 100644 --- a/includes/WPUF_User.php +++ b/includes/WPUF_User.php @@ -2,6 +2,8 @@ namespace WeDevs\Wpuf; +use WP_User; + /** * The User Class * @@ -19,14 +21,14 @@ class WPUF_User { /** * User Object * - * @var \WP_User + * @var WP_User */ public $user; /** * The constructor * - * @param int|\WP_User $user + * @param int|WP_User $user */ public function __construct( $user ) { if ( is_numeric( $user ) ) { diff --git a/includes/Widgets/Login_Widget.php b/includes/Widgets/Login_Widget.php index 9e0379a90..adb193b9a 100644 --- a/includes/Widgets/Login_Widget.php +++ b/includes/Widgets/Login_Widget.php @@ -3,13 +3,15 @@ namespace WeDevs\Wpuf\Widgets; use WeDevs\Wpuf\Free\Simple_Login; +use WP_Error; +use WP_Widget; /** * Ajax Login and Forgot password handler class * * @since 2.8 */ -class Login_Widget extends \WP_Widget { +class Login_Widget extends WP_Widget { public function __construct() { parent::__construct( @@ -109,7 +111,7 @@ public function ajax_reset_pass() { private function ajax_lostpassword_retrieve( $user_input ) { global $wpdb, $wp_hasher; - $errors = new \WP_Error(); + $errors = new WP_Error(); if ( empty( $user_input ) ) { $errors->add( 'empty_username', __( 'ERROR: Enter a username or email address.', 'wp-user-frontend' ) ); diff --git a/includes/class-field-manager.php b/includes/class-field-manager.php index 36fff5bba..12e556067 100755 --- a/includes/class-field-manager.php +++ b/includes/class-field-manager.php @@ -43,7 +43,7 @@ public function get_fields() { * * @param string $field_type * - * @return \WPUF_Field_Contract + * @return WPUF_Field_Contract */ public function get_field( $field_type ) { $fields = $this->get_fields(); diff --git a/includes/upgrades/upgrade-2.1.9.php b/includes/upgrades/upgrade-2.1.9.php index 31a8000a4..f29cc3b48 100644 --- a/includes/upgrades/upgrade-2.1.9.php +++ b/includes/upgrades/upgrade-2.1.9.php @@ -1,5 +1,7 @@ get_all_post_type(); + $post_type = (new Subscription())->get_all_post_type(); foreach ( $results as $key => $result ) { $args = [ diff --git a/includes/upgrades/upgrade-2.6.0.php b/includes/upgrades/upgrade-2.6.0.php index b1c973447..87168df30 100644 --- a/includes/upgrades/upgrade-2.6.0.php +++ b/includes/upgrades/upgrade-2.6.0.php @@ -1,5 +1,7 @@ subscription_pack_users(); + $users = (new Subscription())->subscription_pack_users(); foreach ( $users as $user ) { $sub_data = get_user_meta( $user->data->ID, '_wpuf_subscription_pack', true ); diff --git a/wpuf-functions.php b/wpuf-functions.php index 4eb3d8337..cc7e8bfdc 100644 --- a/wpuf-functions.php +++ b/wpuf-functions.php @@ -3107,8 +3107,8 @@ function wpuf_get_draft_post_status( $form_settings ) { * * @since 2.6.0 * - * @param array $state - * @param \WP_Post $post + * @param array $state + * @param WP_Post $post * * @return array */ @@ -4676,7 +4676,7 @@ function wpuf_modify_shortcodes( $content ) { $post = get_post(); - if ( ! ( $post instanceof \WP_Post ) ) { + if ( ! ( $post instanceof WP_Post ) ) { return $content; } diff --git a/wpuf.php b/wpuf.php index 9ba119f77..c2ef1c371 100644 --- a/wpuf.php +++ b/wpuf.php @@ -354,7 +354,7 @@ public function get_field_seperator() { /** * Returns the singleton instance * - * @return \WP_User_Frontend + * @return WP_User_Frontend */ function wpuf() { return WP_User_Frontend::instance(); From 5d382d6acdbd43019c47e56fa62a50d112b07c7b Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Thu, 1 Feb 2024 16:37:14 +0600 Subject: [PATCH 05/18] update whats new link to headwayapp --- includes/Free/templates/page-registration-form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/Free/templates/page-registration-form.php b/includes/Free/templates/page-registration-form.php index 87f6ca1e5..66c32aa09 100644 --- a/includes/Free/templates/page-registration-form.php +++ b/includes/Free/templates/page-registration-form.php @@ -82,7 +82,7 @@
  • - +
  • From f7f0498adcd60255df474d24a852db7672d93a1b Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Fri, 2 Feb 2024 16:33:34 +0600 Subject: [PATCH 06/18] fix: reset password not working --- includes/Free/Simple_Login.php | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/includes/Free/Simple_Login.php b/includes/Free/Simple_Login.php index 26674dd05..550469284 100644 --- a/includes/Free/Simple_Login.php +++ b/includes/Free/Simple_Login.php @@ -4,6 +4,8 @@ use WeDevs\Wpuf\Render_Form; use WeDevs\Wpuf\WPUF_User; +use WP_Error; +use WP_User; /** * Login and forgot password handler class @@ -157,7 +159,7 @@ public function validate_custom_fields( $user, $password ) { if ( $recaptcha === 'on' ) { if ( isset( $_REQUEST['g-recaptcha-response'] ) ) { if ( empty( $_REQUEST['g-recaptcha-response'] ) ) { - $user = new \WP_Error( 'WPUFLoginCaptchaError', 'Empty reCaptcha Field.' ); + $user = new WP_Error( 'WPUFLoginCaptchaError', 'Empty reCaptcha Field.' ); } else { $no_captcha = 1; $invisible_captcha = 0; @@ -425,7 +427,7 @@ public function process_login() { $pwd = isset( $_POST['pwd'] ) ? trim( $_POST['pwd'] ) : ''; // $g_recaptcha_response = isset( $_POST['g-recaptcha-response'] ) ? sanitize_text_field( wp_unslash( $_POST['g-recaptcha-response'] ) ) : ''; - $validation_error = new \WP_Error(); + $validation_error = new WP_Error(); $validation_error = apply_filters( 'wpuf_process_login_errors', $validation_error, $log, $pwd ); if ( $validation_error->get_error_code() ) { @@ -623,8 +625,11 @@ public function process_reset_password() { // process lost password form if ( isset( $_POST['user_login'] ) && isset( $_POST['_wpnonce'] ) ) { - $nonce = sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ); - wp_verify_nonce( $nonce, 'wpuf_lost_pass' ); + $nonce = ! empty( $_POST['_wpnonce'] ) ? sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ) : ''; + + if ( ! empty( $nonce) && ! wp_verify_nonce( $nonce, 'wpuf_lost_pass' ) ) { + return ; + } if ( $this->retrieve_password() ) { $url = add_query_arg( @@ -655,8 +660,6 @@ public function process_reset_password() { $args['key'] = $key; $args['login'] = $login; - wp_verify_nonce( $nonce, 'wpuf_reset_pass' ); - if ( empty( $pass1 ) || empty( $pass2 ) ) { $this->login_errors[] = __( 'Please enter your password.', 'wp-user-frontend' ); @@ -669,7 +672,7 @@ public function process_reset_password() { return; } - $errors = new \WP_Error(); + $errors = new WP_Error(); do_action( 'validate_password_reset', $errors, $user ); @@ -784,7 +787,7 @@ public function successfully_authenticate( $user, $username, $password ) { if ( ! is_wp_error( $user ) ) { if ( $user->ID ) { $resend_link = add_query_arg( 'resend_activation', $user->ID, $this->get_login_url() ); - $error = new \WP_Error(); + $error = new WP_Error(); $wpuf_user = new WPUF_User( $user->ID ); if ( ! $wpuf_user->is_verified() ) { @@ -916,10 +919,10 @@ public function activation_user_registration() { * * @since 2.2 * - * @return \WP_Error + * @return WP_Error */ public function user_activation_message() { - return new \WP_Error( 'user-activated', __( 'Your account has been activated', 'wp-user-frontend' ), 'message' ); + return new WP_Error( 'user-activated', __( 'Your account has been activated', 'wp-user-frontend' ), 'message' ); } public function wp_login_page_redirect() { From f402cc3cc658dffe1c31552cdace9e8ff946dc89 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Mon, 5 Feb 2024 10:13:38 +0600 Subject: [PATCH 07/18] fix: frontend form submission error messages --- assets/js/frontend-form.js | 4 ++-- assets/js/frontend-form.min.js | 2 +- languages/wp-user-frontend.pot | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/js/frontend-form.js b/assets/js/frontend-form.js index 94304b736..f868c6b28 100644 --- a/assets/js/frontend-form.js +++ b/assets/js/frontend-form.js @@ -467,7 +467,7 @@ if ( typeof res.type !== 'undefined' && res.type === 'login' ) { - if ( confirm(res.error) ) { + if ( confirm(res.data.error) ) { window.location = res.redirect_to; } else { submitButton.removeAttr('disabled'); @@ -482,7 +482,7 @@ } Swal.fire({ - html: res.error, + html: res.data.error, icon: 'warning', showCancelButton: false, confirmButtonColor: '#d54e21', diff --git a/assets/js/frontend-form.min.js b/assets/js/frontend-form.min.js index 608ff6cbb..ce96218f9 100644 --- a/assets/js/frontend-form.min.js +++ b/assets/js/frontend-form.min.js @@ -1 +1 @@ -!function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),b.matchMedia("(max-width: 600px)").matches&&(a("table.items-table tr td .post-edit-icon").click(function(b){b.preventDefault(),a(this).parents("tr").find(".data-column").toggleClass("flex-column"),a(this).toggleClass("toggle-icon")}),a(".wpuf-dashboard-navigation ul li:first-child").after().click(function(b){b.preventDefault(),a(".wpuf-dashboard-navigation ul li").not(":first").toggle()})),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),Swal.fire({text:wpuf_frontend.cancelSubMsg,icon:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,customClass:{confirmButton:"btn btn-success",cancelButton:"btn btn-danger"}}).then(function(b){if(!b.isConfirmed)return!1;a("#wpuf_cancel_subscription").submit()})}),this.warningOnExit(),this.handleReadOnly()},warningOnExit:function(){a('input[name="submit"], #wpuf-post-draft').on("click",function(){b.onbeforeunload=null}),a(".wpuf-form-add").on("change",function(){a(".wpuf-form-add input, .wpuf-form-add select, .wpuf-form-add textarea").each(function(c){"hidden"===a(this).attr("type")&&"submit"===a(this).attr("type")&&-1===a(this).val()||(b.onbeforeunload=function(){return"you have changes"})})})},handleReadOnly:function(){a(".wpuf-form .read-only").each(function(){a("input, select, textarea",this).each(function(){a(this).attr("disabled",!0)})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html(" "),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputDisallowedList(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('
    ');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='
      ',a(".wpuf-multistep-fieldset",this).each(function(){d+="
    • "+a.trim(a("legend",this).text())+"
    • ",a("legend",this).hide()}),d+="
    ",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('
    '),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().addBack().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' '),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='';e+='',e+='',e+='',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('  '+b.message+""),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b,d=(c.find("input[type=submit]"),WP_User_Frontend.validateForm(c));return 0==d&&WP_User_Frontend.addErrorNotice(self,"bottom"),d},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append(''),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('
    '+c.message+"
    "),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),Swal.fire({html:c.error,icon:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",customClass:{cancelButton:"btn btn-danger"}}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},isTelephoneField:function(b){return a(b).hasClass("wpuf_telephone")&&"yes"===a(b).data("show-list")},validateForm:function(c){var d=[],e=[];if(WP_User_Frontend.removeErrors(c),WP_User_Frontend.removeErrorNotice(c),c.find("input:visible, textarea:visible, select:visible, div.br-widget:visible, .wpuf-rich-validation:visible, div.wpuf-attachment-upload-filelist:visible").each(function(f,g){var h="",i=a(g).data("type"),j=a(g).data("required");switch(i){case"rich":var k=a(g).data("id"),l=a(g).data("name");w=a.trim(tinyMCE.get(k).getContent()),"yes"===j&&""===w&&e.push({type:"required",container:g});var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}var n=WP_User_Frontend.editorContainingShortcode(g);if(n.shortcodeFound){e.push({type:"custom",container:g,message:wpuf_frontend.protected_shortcodes_message.replace("%shortcode%","["+n.shortcode+"]")});break}d.push(l+"="+encodeURIComponent(w));break;case"textarea":case"text":if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}if(WP_User_Frontend.isTelephoneField(g)){var o=b.intlTelInputGlobals.getInstance(g);if(""!==o.getNumber()&&!o.isValidNumber()){e.push({type:"validation",container:g});break}var p=a(g).attr("name"),q=o.getNumber();a("").attr("type","hidden").attr("name",p).attr("value",q).appendTo(c);break}break;case"url":if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}if(""!==w&&!WP_User_Frontend.isValidURL(w)){e.push({type:"validation",container:g});break}break;case"password":case"confirm_password":var r=a(g).data("repeat"),s=a(g).data("strength"),t=a(g).data("minimum-length");if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}if(w.length'+wpuf_frontend.error_message+"
"):a(b).find("li.wpuf-submit").append('
'+wpuf_frontend.error_message+"
")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c,d){if(a(b).closest("div").addClass("has-error"),c){var e="",f=a(b).data("label");switch(e=f||a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":e=e+" "+error_str_obj[c];break;case"limit":e="";break;case"custom":e=d}a(b).siblings(".wpuf-error-msg").remove(),a(b).closest(".wpuf-fields.wpuf-fields-address").length?(a(b).closest("div.wpuf-sub-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-sub-fields").append('
'+e+"
")):(a(b).closest("div.wpuf-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-fields").append('
'+e+"
"))}},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/){1}[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,20}(:[0-9]{1,20})?(\\/.*)?$").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:wpuf_upload.max_filesize,url:wpuf_upload.plupload.url,flash_swf_url:wpuf_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('
')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d,e,f){"no"===d?(a("textarea#"+c).keyup(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).keyup(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).change(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyUp.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyUp(a,c,b,e,f)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b,e,f)},100)})},1e3)},checkTinyMCERestriction:function(b,c,d){var e=0,f=void 0!==c[0]&&null!==c[0]?parseInt(c[0]):0,g=(void 0!==c[1]&&null!==c[1]&&c[1].trim(),void 0!==c[2]&&null!==c[2]&&c[2].trim(),void 0!==c[3]&&null!==c[3]?c[3].trim():""),h=void 0!==c[4]&&null!==c[4]?c[4].trim():"",i="";"word"===g?(e=WP_User_Frontend.editorLimit.tinymce.getStats(d).words,i="word_"+h):(e=WP_User_Frontend.editorLimit.tinymce.getStats(d).chars,i="char_"+h);wpuf_frontend["word_"+h];return 0!==e&&(e>f&&"max"===h?(WP_User_Frontend.markError(b,"limit"),jQuery(".mce-path-item.mce-last",d.container).html(wpuf_frontend[i]+" "+e+"/"+f),!0):ej&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(gj&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(fd&&"max"===f?(WP_User_Frontend.markError(g,"limit"),WP_User_Frontend.contentLimitMessage(a(g),e,f,d)):d&&hd&&"max"===f?(WP_User_Frontend.contentLimitMessage(i,e,f,d),WP_User_Frontend.markError(i,"limit")):d&&hc&&"max"===e?(WP_User_Frontend.contentLimitMessage(f,d,e,c),WP_User_Frontend.markError(f,"limit")):c&&gc&&"max"===e?(WP_User_Frontend.contentLimitMessage(f,d,e,c),WP_User_Frontend.markError(f,"limit")):c&&g=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"wpuf_make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}},doUncheckRadioBtn:function(a){a.checked=!1},contentLimitMessage:function(a,b,c,d){var e="";"word"===b?"min"===c?(e=wpuf_frontend.word_min_title+"
",e+=wpuf_frontend.word_min_details.replace("%number%",d)):(e=wpuf_frontend.word_max_title+"
",e+=wpuf_frontend.word_max_details.replace("%number%",d)):"min"===c?(e=wpuf_frontend.char_min_title+"
",e+=wpuf_frontend.char_min_details.replace("%number%",d)):(e=wpuf_frontend.char_max_title+"
",e+=wpuf_frontend.char_max_details.replace("%number%",d)),a.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(e)},editorContainingShortcode:function(b){var c=a(b),d=c.data("id"),e=a.trim(tinyMCE.get(d).getContent()).toLowerCase(),f=wpuf_frontend.protected_shortcodes;if(!f)return{shortcodeFound:!1};for(var g=0;g=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window); \ No newline at end of file +!function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),b.matchMedia("(max-width: 600px)").matches&&(a("table.items-table tr td .post-edit-icon").click(function(b){b.preventDefault(),a(this).parents("tr").find(".data-column").toggleClass("flex-column"),a(this).toggleClass("toggle-icon")}),a(".wpuf-dashboard-navigation ul li:first-child").after().click(function(b){b.preventDefault(),a(".wpuf-dashboard-navigation ul li").not(":first").toggle()})),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),Swal.fire({text:wpuf_frontend.cancelSubMsg,icon:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,customClass:{confirmButton:"btn btn-success",cancelButton:"btn btn-danger"}}).then(function(b){if(!b.isConfirmed)return!1;a("#wpuf_cancel_subscription").submit()})}),this.warningOnExit(),this.handleReadOnly()},warningOnExit:function(){a('input[name="submit"], #wpuf-post-draft').on("click",function(){b.onbeforeunload=null}),a(".wpuf-form-add").on("change",function(){a(".wpuf-form-add input, .wpuf-form-add select, .wpuf-form-add textarea").each(function(c){"hidden"===a(this).attr("type")&&"submit"===a(this).attr("type")&&-1===a(this).val()||(b.onbeforeunload=function(){return"you have changes"})})})},handleReadOnly:function(){a(".wpuf-form .read-only").each(function(){a("input, select, textarea",this).each(function(){a(this).attr("disabled",!0)})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html(" "),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputDisallowedList(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('
');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='
    ',a(".wpuf-multistep-fieldset",this).each(function(){d+="
  • "+a.trim(a("legend",this).text())+"
  • ",a("legend",this).hide()}),d+="
",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('
'),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().addBack().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' '),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='';e+='',e+='',e+='',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('  '+b.message+""),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b,d=(c.find("input[type=submit]"),WP_User_Frontend.validateForm(c));return 0==d&&WP_User_Frontend.addErrorNotice(self,"bottom"),d},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append(''),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('
'+c.message+"
"),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.data.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),Swal.fire({html:c.data.error,icon:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",customClass:{cancelButton:"btn btn-danger"}}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},isTelephoneField:function(b){return a(b).hasClass("wpuf_telephone")&&"yes"===a(b).data("show-list")},validateForm:function(c){var d=[],e=[];if(WP_User_Frontend.removeErrors(c),WP_User_Frontend.removeErrorNotice(c),c.find("input:visible, textarea:visible, select:visible, div.br-widget:visible, .wpuf-rich-validation:visible, div.wpuf-attachment-upload-filelist:visible").each(function(f,g){var h="",i=a(g).data("type"),j=a(g).data("required");switch(i){case"rich":var k=a(g).data("id"),l=a(g).data("name");w=a.trim(tinyMCE.get(k).getContent()),"yes"===j&&""===w&&e.push({type:"required",container:g});var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}var n=WP_User_Frontend.editorContainingShortcode(g);if(n.shortcodeFound){e.push({type:"custom",container:g,message:wpuf_frontend.protected_shortcodes_message.replace("%shortcode%","["+n.shortcode+"]")});break}d.push(l+"="+encodeURIComponent(w));break;case"textarea":case"text":if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}var m=WP_User_Frontend.editorLimit.isRestrictionFailed(g);if(m){e.push({type:"limit",container:g});break}if(WP_User_Frontend.isTelephoneField(g)){var o=b.intlTelInputGlobals.getInstance(g);if(""!==o.getNumber()&&!o.isValidNumber()){e.push({type:"validation",container:g});break}var p=a(g).attr("name"),q=o.getNumber();a("").attr("type","hidden").attr("name",p).attr("value",q).appendTo(c);break}break;case"url":if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}if(""!==w&&!WP_User_Frontend.isValidURL(w)){e.push({type:"validation",container:g});break}break;case"password":case"confirm_password":var r=a(g).data("repeat"),s=a(g).data("strength"),t=a(g).data("minimum-length");if(w=a.trim(a(g).val()),"yes"===j&&""===w){e.push({type:"required",container:g});break}if(w.length'+wpuf_frontend.error_message+""):a(b).find("li.wpuf-submit").append('
'+wpuf_frontend.error_message+"
")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c,d){if(a(b).closest("div").addClass("has-error"),c){var e="",f=a(b).data("label");switch(e=f||a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":e=e+" "+error_str_obj[c];break;case"limit":e="";break;case"custom":e=d}a(b).siblings(".wpuf-error-msg").remove(),a(b).closest(".wpuf-fields.wpuf-fields-address").length?(a(b).closest("div.wpuf-sub-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-sub-fields").append('
'+e+"
")):(a(b).closest("div.wpuf-fields").find("div.wpuf-error-msg").remove(),a(b).closest("div.wpuf-fields").append('
'+e+"
"))}},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/){1}[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,20}(:[0-9]{1,20})?(\\/.*)?$").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:wpuf_upload.max_filesize,url:wpuf_upload.plupload.url,flash_swf_url:wpuf_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('
')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d,e,f){"no"===d?(a("textarea#"+c).keyup(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).keyup(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("input#"+c).change(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b,e,f)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b,e,f)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyUp.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyUp(a,c,b,e,f)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b,e,f)},100)})},1e3)},checkTinyMCERestriction:function(b,c,d){var e=0,f=void 0!==c[0]&&null!==c[0]?parseInt(c[0]):0,g=(void 0!==c[1]&&null!==c[1]&&c[1].trim(),void 0!==c[2]&&null!==c[2]&&c[2].trim(),void 0!==c[3]&&null!==c[3]?c[3].trim():""),h=void 0!==c[4]&&null!==c[4]?c[4].trim():"",i="";"word"===g?(e=WP_User_Frontend.editorLimit.tinymce.getStats(d).words,i="word_"+h):(e=WP_User_Frontend.editorLimit.tinymce.getStats(d).chars,i="char_"+h);wpuf_frontend["word_"+h];return 0!==e&&(e>f&&"max"===h?(WP_User_Frontend.markError(b,"limit"),jQuery(".mce-path-item.mce-last",d.container).html(wpuf_frontend[i]+" "+e+"/"+f),!0):ej&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(gj&&"max"===l)return WP_User_Frontend.markError(b,"limit"),!0;if(fd&&"max"===f?(WP_User_Frontend.markError(g,"limit"),WP_User_Frontend.contentLimitMessage(a(g),e,f,d)):d&&hd&&"max"===f?(WP_User_Frontend.contentLimitMessage(i,e,f,d),WP_User_Frontend.markError(i,"limit")):d&&hc&&"max"===e?(WP_User_Frontend.contentLimitMessage(f,d,e,c),WP_User_Frontend.markError(f,"limit")):c&&gc&&"max"===e?(WP_User_Frontend.contentLimitMessage(f,d,e,c),WP_User_Frontend.markError(f,"limit")):c&&g=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"wpuf_make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}},doUncheckRadioBtn:function(a){a.checked=!1},contentLimitMessage:function(a,b,c,d){var e="";"word"===b?"min"===c?(e=wpuf_frontend.word_min_title+"
",e+=wpuf_frontend.word_min_details.replace("%number%",d)):(e=wpuf_frontend.word_max_title+"
",e+=wpuf_frontend.word_max_details.replace("%number%",d)):"min"===c?(e=wpuf_frontend.char_min_title+"
",e+=wpuf_frontend.char_min_details.replace("%number%",d)):(e=wpuf_frontend.char_max_title+"
",e+=wpuf_frontend.char_max_details.replace("%number%",d)),a.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(e)},editorContainingShortcode:function(b){var c=a(b),d=c.data("id"),e=a.trim(tinyMCE.get(d).getContent()).toLowerCase(),f=wpuf_frontend.protected_shortcodes;if(!f)return{shortcodeFound:!1};for(var g=0;g=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window); \ No newline at end of file diff --git a/languages/wp-user-frontend.pot b/languages/wp-user-frontend.pot index 682ee0c0b..1fa0f32e6 100644 --- a/languages/wp-user-frontend.pot +++ b/languages/wp-user-frontend.pot @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: WP User Frontend 4.0.5\n" "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n" -"POT-Creation-Date: 2024-01-31 14:11:33+00:00\n" +"POT-Creation-Date: 2024-02-05 03:51:07+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" From c3e1b226eb1c515daadba5bc43d0c26656ad3bd0 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Mon, 5 Feb 2024 16:51:26 +0600 Subject: [PATCH 08/18] add wpuf-upload for all post types --- includes/Admin.php | 53 ++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/includes/Admin.php b/includes/Admin.php index 5de4f6e66..dbf9a4a1b 100644 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -98,36 +98,33 @@ public function enqueue_cpt_page_scripts( $hook_suffix ) { } if ( in_array( $hook_suffix, [ 'post.php', 'post-new.php' ], true ) ) { - $screen = get_current_screen(); - if ( is_object( $screen ) && 'product' === $screen->post_type ) { - wp_enqueue_script( 'wpuf-upload' ); - wp_localize_script( - 'wpuf-upload', - 'wpuf_upload', - [ - 'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ), - 'delete_it' => __( 'Yes, delete it', 'wp-user-frontend' ), - 'cancel_it' => __( 'No, cancel it', 'wp-user-frontend' ), - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - 'nonce' => wp_create_nonce( 'wpuf_nonce' ), - 'plupload' => [ - 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ), - 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ), - 'filters' => [ - [ - 'title' => __( 'Allowed Files', 'wp-user-frontend' ), - 'extensions' => '*', - ], + wp_enqueue_script( 'wpuf-upload' ); + wp_localize_script( + 'wpuf-upload', + 'wpuf_upload', + [ + 'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ), + 'delete_it' => __( 'Yes, delete it', 'wp-user-frontend' ), + 'cancel_it' => __( 'No, cancel it', 'wp-user-frontend' ), + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'wpuf_nonce' ), + 'plupload' => [ + 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ), + 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ), + 'filters' => [ + [ + 'title' => __( 'Allowed Files', 'wp-user-frontend' ), + 'extensions' => '*', ], - 'multipart' => true, - 'urlstream_upload' => true, - 'warning' => __( 'Maximum number of files reached!', 'wp-user-frontend' ), - 'size_error' => __( 'The file you have uploaded exceeds the file size limit. Please try again.', 'wp-user-frontend' ), - 'type_error' => __( 'You have uploaded an incorrect file type. Please try again.', 'wp-user-frontend' ), ], - ] - ); - } + 'multipart' => true, + 'urlstream_upload' => true, + 'warning' => __( 'Maximum number of files reached!', 'wp-user-frontend' ), + 'size_error' => __( 'The file you have uploaded exceeds the file size limit. Please try again.', 'wp-user-frontend' ), + 'type_error' => __( 'You have uploaded an incorrect file type. Please try again.', 'wp-user-frontend' ), + ], + ] + ); } } } From 807902a4b0a976dd11ee111eed3150afe3c3ef18 Mon Sep 17 00:00:00 2001 From: Sapayth Hossain Date: Mon, 5 Feb 2024 17:25:26 +0600 Subject: [PATCH 09/18] show message to check email for reseting password --- includes/Free/Simple_Login.php | 4 ++++ templates/login-form.php | 6 ++++-- templates/lost-pass-form.php | 6 ++++-- templates/reset-pass-form.php | 6 ++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/includes/Free/Simple_Login.php b/includes/Free/Simple_Login.php index 550469284..bb4270886 100644 --- a/includes/Free/Simple_Login.php +++ b/includes/Free/Simple_Login.php @@ -361,6 +361,10 @@ public function login_form() { case 'lostpassword': $checkemail = isset( $getdata['checkemail'] ) ? sanitize_text_field( $getdata['checkemail'] ) : ''; + if ( $this->login_errors ) { + wpuf_load_template( 'lost-pass-form.php', $args ); + break; + } if ( 'confirm' === $checkemail ) { $this->messages[] = __( 'Check your e-mail for the confirmation link.', 'wp-user-frontend' ); } diff --git a/templates/login-form.php b/templates/login-form.php index 2dfc7a37e..c23aaacb1 100644 --- a/templates/login-form.php +++ b/templates/login-form.php @@ -15,8 +15,10 @@ } ?> - frontend->simple_login->show_errors(); ?> - frontend->simple_login->show_messages(); ?> + frontend->simple_login->show_errors(); + wpuf()->frontend->simple_login->show_messages(); + ?>