'return_value' => 'true', 'default' => 'false', 'condition' => [ $slug . 'enable' => 'true' ], ] ); $widget->add_control( $slug . 'pattern_id', [ 'label' => esc_html__('Pattern ID', 'payamito-elementor'), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'placeholder' => esc_html__('example:34562', 'payamito-elementor'), 'condition' => [ $slug . 'enable' => 'true', $slug . 'pattern_enable' => 'true', ], ] ); $repeater = new Elementor\Repeater(); $repeater->add_control( 'tag', [ 'label' => __('Variable: ID field', 'payamito-elementor'), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'classes' => 'payamito-option-id', 'render_type' => 'none', 'classes' => 'payamito_el_tag', 'options' => [] ] ); $repeater->add_control( 'user_tag', [ 'label' => esc_html__('your Tag', 'payamito-elementor'), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'placeholder' => esc_html__('your Tag', 'payamito-elementor'), 'default' => '0', ] ); $widget->add_control( $slug . 'pattern', [ 'type' => \Elementor\Controls_Manager::REPEATER, 'label' => __('Admin Pattern', 'payamito-elementor'), 'fields' => $repeater->get_controls(), 'condition' => [ $slug . 'enable' => 'true', $slug . 'pattern_enable' => 'true', ], ] ); $widget->add_control( $slug . 'message', [ 'label' => __('Admin Message', 'payamito-elementor'), 'type' => \Elementor\Controls_Manager::TEXTAREA, 'placeholder' => __('Submit new form with phone field_id', 'payamito-elementor'), 'label_block' => true, 'render_type' => 'none', 'classes' => '', 'description' => __('Use fields ids for send form data or write your custom text.', 'payamito-elementor'), 'separator' => 'after', 'condition' => [ $slug . 'enable' => 'true', $slug . 'pattern_enable!' => 'true', ], ] ); } /** * On Export * * Clears form settings on export * @access Public * @param array $element */ public function on_export($element) { return $element; } /** * Runs the action after submit * * @access public * @param \ElementorPro\Modules\Forms\Classes\Form_Record $record * @param \ElementorPro\Modules\Forms\Classes\Ajax_Handler $ajax_handler */ public function run($record, $ajax_handler) { if (!$ajax_handler->is_success) { return; } $error = false; $form_id = sanitize_text_field($_POST['form_id']); $post_id = $_POST['post_id']; $sent_data = $record->get('sent_data'); $phone_id = null; $phone = null; $phone_value = null; $OTP = null; $otp_id = 'payamito_el_otp_input'; $fields = $record->get('fields'); $this->form = new Payamito_Elementor_Form($form_id, $post_id); $otp_settings = $this->form->otp_settings; if ($otp_settings['active']) { foreach ($fields as $field) { if ($field['type'] === Payamito_Elementor_Phone_Field::get_field_type()) { $phone_id = $field['id']; } } if ($phone_id === null) { $error = true; return $ajax_handler->add_error_message(__("Not found phone field .please contact support", 'payamito-elementor')); } $phone = $fields[$phone_id]; $phone_value = payamito_to_english_number($phone['value']); $error_message = _payamito_el_get_session($phone_value); session_start(); $session = _payamito_el_get_session($phone_value); if (!payamito_verify_moblie_number($phone_value)) { $error = true; return $ajax_handler->add_error($phone_id, __("Please enter a valid phone", 'payamito-elementor')); } if (is_null($session)) { $error = true; $send = $this->send($this->form->otp_settings, $sent_data, $phone_value, 'OTP'); if ($send['result'] === true) { $OTP = $this->form->get_otp(); _payamito_el_set_session($phone_value, ['OTP' => $OTP]); $ajax_handler->add_error_message(__("We sent you a OTP code to confirm phone please fill OTP input with it", 'payamito-elementor')); } else { $ajax_handler->add_error_message($send['message']); } return; } if (isset($error_message['otp_message']) && !empty($error_message['otp_message'])) { $error = true; $ajax_handler->add_error_message($error_message['otp_message']); _payamito_el_delete_message_session($phone_value, 'otp_message'); return; } if (isset($error_message['field_message']) && !empty($error_message['field_message'])) { $error = true; $ajax_handler->add_error_message($error_message['field_message']); _payamito_el_delete_message_session($phone, 'field_message'); return; } if (!isset($_POST['payamito_el_otp_input'])) { $error = true; return $ajax_handler->add_error_message(__("Please enter OTP sended to your phone", 'payamito-elementor')); } $OTP = payamito_to_english_number(sanitize_text_field($_POST['payamito_el_otp_input'])); if ($session['OTP'] != $OTP || is_null($OTP)) { $error = true; return $ajax_handler->add_error_message(__("OTP is not correct", 'payamito-elementor')); } if (!is_numeric($OTP)) { $error = true; $ajax_handler->add_error_message(__("OTP is not correct", 'payamito-elementor')); return; } if (count($ajax_handler->errors) === 0) { _payamito_el_delete_session($phone_value); } } if ($error === false) { $this->send($this->form->user_settings, $sent_data, null, 'user'); $this->send($this->form->admin_settings, $sent_data, null, 'admin'); } } public function send(array $settings, array $sent_data, $phone_number = null, string $user_type) { if ($settings['active'] === false) { return false; } $phone = []; if ($user_type === 'user') { $phone = payamito_to_english_number($sent_data[$settings['phone_field']]); $verify = payamito_verify_moblie_number($phone); if ($verify === false) { return false; } $phone = [$phone]; } if ($user_type === 'admin') { foreach ($settings['phone'] as $item) { $item = payamito_to_english_number($item['phone']); if (payamito_verify_moblie_number($item)) { array_push($phone, $item); } } } if ($user_type === "OTP") { $phone = [$phone_number]; } if ($settings['pattern_active'] === true) { if ($user_type === "OTP") { $pattern = $this->form->otp_prepare_pattern($settings['pattern']); } else { $pattern = $this->form->prepare_pattern($settings['pattern'], $sent_data); } foreach ($phone as $item) { $send = $this->form->pattern_send($item, $pattern, $settings['pattern_id']); } } else { if ($user_type === "OTP") { $message = $this->form->prepare_otp_message($settings['message']); } else { $message = $this->form->prepare_message($settings['message'], $sent_data); } foreach ($phone as $item) { $send = $this->form->text_send($item, $message); } } return $send; } } new Payamito_Elementor_Phone_Field; {"id":4870,"count":1,"description":"","link":"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/","name":"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631","slug":"%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1","taxonomy":"post_tag","meta":[],"yoast_head":"\n\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631 Archives - \u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648<\/title>\n<meta name=\"description\" content=\"\u0646\u06cc\u06a9\u0627\u0631\u0648 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u062f \u0622\u0645\u0648\u0632\u0634 \u0633\u0646\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u067e\u06cc\u0648\u0646\u062f \u0628\u0632\u0646\u062f. \u0645\u0627\u0631\u0627 \u062f\u0631 \u06af\u0648\u06af\u0644 \u0633\u0631\u0686 \u06a9\u0646\u06cc\u062f !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nikaro.ir\/blog\/tag\/\u0648\u0633\u0627\u06cc\u0644-\u067e\u0627\u0631\u06a9\u0648\u0631\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nikaro.ir\/blog\/tag\/\u0648\u0633\u0627\u06cc\u0644-\u067e\u0627\u0631\u06a9\u0648\u0631\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"CollectionPage\",\"@id\":\"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/\",\"url\":\"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/\",\"name\":\"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631 Archives - \u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648\",\"isPartOf\":{\"@id\":\"https:\/\/nikaro.ir\/blog\/#website\"},\"description\":\"\u0646\u06cc\u06a9\u0627\u0631\u0648 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u062f \u0622\u0645\u0648\u0632\u0634 \u0633\u0646\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u067e\u06cc\u0648\u0646\u062f \u0628\u0632\u0646\u062f. \u0645\u0627\u0631\u0627 \u062f\u0631 \u06af\u0648\u06af\u0644 \u0633\u0631\u0686 \u06a9\u0646\u06cc\u062f !\",\"breadcrumb\":{\"@id\":\"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/#breadcrumb\"},\"inLanguage\":\"fa-IR\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nikaro.ir\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nikaro.ir\/blog\/#website\",\"url\":\"https:\/\/nikaro.ir\/blog\/\",\"name\":\"\u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648\",\"description\":\"\u0645\u0639\u0631\u0641\u06cc \u0648 \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc\u060c \u0648\u0631\u0632\u0634\u06cc\u060c \u0648 \u0647\u0646\u0631\u06cc\",\"publisher\":{\"@id\":\"https:\/\/nikaro.ir\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nikaro.ir\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nikaro.ir\/blog\/#organization\",\"name\":\"\u0646\u06cc\u06a9\u0627\u0631\u0648\",\"url\":\"https:\/\/nikaro.ir\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/nikaro.ir\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nikaro.ir\/blog\/wp-content\/uploads\/2021\/12\/Untitled-111111111ssssssssssss.png\",\"contentUrl\":\"https:\/\/nikaro.ir\/blog\/wp-content\/uploads\/2021\/12\/Untitled-111111111ssssssssssss.png\",\"width\":400,\"height\":133,\"caption\":\"\u0646\u06cc\u06a9\u0627\u0631\u0648\"},\"image\":{\"@id\":\"https:\/\/nikaro.ir\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.instagram.com\/nikaroir\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631 Archives - \u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648","description":"\u0646\u06cc\u06a9\u0627\u0631\u0648 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u062f \u0622\u0645\u0648\u0632\u0634 \u0633\u0646\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u067e\u06cc\u0648\u0646\u062f \u0628\u0632\u0646\u062f. \u0645\u0627\u0631\u0627 \u062f\u0631 \u06af\u0648\u06af\u0644 \u0633\u0631\u0686 \u06a9\u0646\u06cc\u062f !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nikaro.ir\/blog\/tag\/\u0648\u0633\u0627\u06cc\u0644-\u067e\u0627\u0631\u06a9\u0648\u0631\/","og_locale":"fa_IR","og_type":"article","og_title":"\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631","og_url":"https:\/\/nikaro.ir\/blog\/tag\/\u0648\u0633\u0627\u06cc\u0644-\u067e\u0627\u0631\u06a9\u0648\u0631\/","og_site_name":"\u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"CollectionPage","@id":"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/","url":"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/","name":"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631 Archives - \u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648","isPartOf":{"@id":"https:\/\/nikaro.ir\/blog\/#website"},"description":"\u0646\u06cc\u06a9\u0627\u0631\u0648 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u062f \u0622\u0645\u0648\u0632\u0634 \u0633\u0646\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u067e\u06cc\u0648\u0646\u062f \u0628\u0632\u0646\u062f. \u0645\u0627\u0631\u0627 \u062f\u0631 \u06af\u0648\u06af\u0644 \u0633\u0631\u0686 \u06a9\u0646\u06cc\u062f !","breadcrumb":{"@id":"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/#breadcrumb"},"inLanguage":"fa-IR"},{"@type":"BreadcrumbList","@id":"https:\/\/nikaro.ir\/blog\/tag\/%d9%88%d8%b3%d8%a7%db%8c%d9%84-%d9%be%d8%a7%d8%b1%da%a9%d9%88%d8%b1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nikaro.ir\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0648\u0633\u0627\u06cc\u0644 \u067e\u0627\u0631\u06a9\u0648\u0631"}]},{"@type":"WebSite","@id":"https:\/\/nikaro.ir\/blog\/#website","url":"https:\/\/nikaro.ir\/blog\/","name":"\u0648\u0628\u0644\u0627\u06af \u0646\u06cc\u06a9\u0627\u0631\u0648","description":"\u0645\u0639\u0631\u0641\u06cc \u0648 \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc\u060c \u0648\u0631\u0632\u0634\u06cc\u060c \u0648 \u0647\u0646\u0631\u06cc","publisher":{"@id":"https:\/\/nikaro.ir\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nikaro.ir\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fa-IR"},{"@type":"Organization","@id":"https:\/\/nikaro.ir\/blog\/#organization","name":"\u0646\u06cc\u06a9\u0627\u0631\u0648","url":"https:\/\/nikaro.ir\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/nikaro.ir\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/nikaro.ir\/blog\/wp-content\/uploads\/2021\/12\/Untitled-111111111ssssssssssss.png","contentUrl":"https:\/\/nikaro.ir\/blog\/wp-content\/uploads\/2021\/12\/Untitled-111111111ssssssssssss.png","width":400,"height":133,"caption":"\u0646\u06cc\u06a9\u0627\u0631\u0648"},"image":{"@id":"https:\/\/nikaro.ir\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/nikaroir"]}]}},"_links":{"self":[{"href":"https:\/\/nikaro.ir\/blog\/wp-json\/wp\/v2\/tags\/4870"}],"collection":[{"href":"https:\/\/nikaro.ir\/blog\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/nikaro.ir\/blog\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/nikaro.ir\/blog\/wp-json\/wp\/v2\/posts?tags=4870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}