enable_notification = WooNotify()->Options( 'enable_notif_360Messenger_main' ); if ( $this->enable_notification ) { add_action( 'woocommerce_product_thumbnails', [ $this, 'showInSingleProduct' ], 100 ); add_action( 'woocommerce_single_product_summary', [ $this, 'showInSingleProduct' ], 39 ); add_action( 'wp_ajax_wc_360Messenger_save_notification_data', [ $this, 'updateSubscription' ] ); add_action( 'wp_ajax_nopriv_wc_360Messenger_save_notification_data', [ $this, 'updateSubscription' ] ); } } /*widget*/ public function form( $instance ) { $title = isset( $instance['title'] ) ? sanitize_text_field($instance['title']) : esc_html('خبرنامه پیامکی'); ?>

enable_notification || ! is_product() ) { return; } $groups = $this->getGroups(); if ( empty( $groups ) ) { return; } //old code // $args['before_widget']; //new code wp_kses_post( $args['before_widget'] ); $title = apply_filters( 'widget_title', $instance['title'] ); if ( ! empty( $title ) ) { esc_html(sanitize_text_field($args['before_title'] . ( $title ) . $args['after_title'])); } WooNotify_Shortcode(); $args['after_widget']; } /*نمایش در صفحه محصول*/ private function getGroups( $product_id = '' ) { if ( empty( self::$groups ) ) { $product_id = WooNotify()->ProductId( $product_id ); self::$groups = WooNotify_360Messenger_Contacts::getGroups( $product_id, true, true ); } return self::$groups; } /*فرم ثبت شماره برای محصول*/ public function showInSingleProduct() { $product_id = get_the_ID(); $is_old_product = ! get_post_meta( $product_id, '_is_360Messenger_set', true ); if ( $is_old_product && ! WooNotify()->Options( 'notif_old_pr' ) ) { $this->enable_notification = false; return; } $show_form = WooNotify()->getValue( 'enable_notif_360Messenger', $product_id ); if ( ! WooNotify()->maybeBool( $show_form ) ) { //این شرط اگر ریترن کنه یعنی نمایش دستی انتخاب شده return; } if ( strval( $show_form ) == 'thumbnail' ) { $stop = current_action() != 'woocommerce_product_thumbnails'; } else { $stop = current_action() == 'woocommerce_product_thumbnails'; } if ( $stop ) { return; } $this->displayForm( $product_id ); } public function displayForm( $product = '' ) { if ( ! $this->enable_notification ) { return; } $product_id = WooNotify()->ProductId( $product ); if ( ! is_product() || empty( $product_id ) ) { return; } $product = wc_get_product( $product_id ); $groups = $this->getGroups( $product_id ); if ( empty( $groups ) ) { return; } do_action( 'WooNotify_before_product_newsletter_form', $product ); $id = ++ self::$form_id; $can_be_subscribe = ! WooNotify()->hasNotifCond( 'notif_only_loggedin', $product_id ) || is_user_logged_in(); $disabled = ''; if ( ! $can_be_subscribe ) { $disabled = 'disabled="disabled"'; } ?>
$text ) : ?>
title="شماره موبایل" placeholder="شماره موبایل"/>

//old code // WooNotify()->getValue( 'notif_only_loggedin_text', $product_id ); //new code getValue( 'notif_only_loggedin_text', $product_id ) ); ?>

" ); var 360Messenger_group = []; form.find(".360Messenger-notif-groups:checked").each(function(i){ 360Messenger_group[i] = $(this).val(); }); $.ajax({ url : "' . admin_url( "admin-ajax.php" ) . '", type : "post", data : { action : "wc_360Messenger_save_notification_data", security: "' . wp_create_nonce( "wc_360Messenger_save_notification_data" ) . '", 360Messenger_mobile : form.find(".360Messenger-notif-mobile").val(), 360Messenger_group : 360Messenger_group, product_id : "' . $product_id . '", }, success : function( response ) { result.html( response ); } }); return false; }); }); ' ); } } public function updateSubscription() { check_ajax_referer( 'wc_360Messenger_save_notification_data', 'security' ); $error_image = ' '; $product_id = isset( $_POST['product_id'] ) ? absint( sanitize_text_field($_POST['product_id']) ) : 0; if ( empty( $product_id ) ) { if (get_locale() == 'fa_IR') die( esc_html(sanitize_text_field($error_image)) . esc_html('حطایی رخ داده است.') ); else die( esc_html(sanitize_text_field($error_image)) . esc_html('An error occurred.') ); } $can_be_subscribe = ! WooNotify()->hasNotifCond( 'notif_only_loggedin', $product_id ) || is_user_logged_in(); if ( ! $can_be_subscribe ) { die( sanitize_text_field($error_image) . WooNotify()->getValue( 'notif_only_loggedin_text', $product_id ) ); } $mobile = WooNotify()->modifyMobile(esc_attr( sanitize_text_field( $_POST['360Messenger_mobile'] ?? '' )) ); if ( empty( $mobile ) ) { if (get_locale() == 'fa_IR') die( esc_html($error_image . 'شماره واتساپ را وارد نمایید.' )); else die( esc_html($error_image . 'Enter the 360Messenger number.') ); } if ( ! WooNotify()->validateMobile( $mobile ) ) { if (get_locale() == 'fa_IR') die( esc_html($error_image . 'شماره واتساپ معتبر نیست.' )); else die( esc_html($error_image . 'The 360Messenger number is not valid.') ); } if ( empty( $_POST['360Messenger_group'] ) ) { if (get_locale() == 'fa_IR') die( esc_html($error_image . 'انتخاب یکی از گزینه ها الزامیست.') ); else die(esc_html( $error_image . 'Choosing one of the options is required.') ); } $groups = (new WooNotify_360Messenger_Settings() )->WooNotify_360Messenger_array_sanitize_text_field( (array) $_POST['360Messenger_group'] ); $success_image = ' '; $contact = (array) WooNotify_360Messenger_Contacts::getContactByMobile( $product_id, $mobile ); if ( ! empty( $contact['id'] ) ) { $old_groups = ! empty( $contact['groups'] ) ? explode( ',', $contact['groups'] ) : []; $new_groups = array_merge( $old_groups, $groups ); $update = WooNotify_360Messenger_Contacts::updateContact( [ 'id' => $contact['id'], 'product_id' => $product_id, 'mobile' => $mobile, 'groups' => $new_groups, ] ); if ( $update !== false ) { if (get_locale() == 'fa_IR') die( esc_html(sanitize_text_field($success_image) . 'اطلاعات شما با موفقیت بروز شد.') ); else die( esc_html(sanitize_text_field($success_image) . 'Your information has been successfully updated.' )); } } else { $insert = WooNotify_360Messenger_Contacts::insertContact( [ 'product_id' => $product_id, 'mobile' => $mobile, 'groups' => $groups, ] ); if ( $insert ) { if (get_locale() == 'fa_IR') die(esc_html( sanitize_text_field($success_image) . 'اطلاعات شما با موفقیت ثبت شد.' )); else die( esc_html(sanitize_text_field($success_image) . 'Your information has been successfully registered.') ); } } if (get_locale() == 'fa_IR') die( esc_html(sanitize_text_field($error_image) . 'خطایی رخ داده است. مجددا تلاش کنید.') ); else die( esc_html(sanitize_text_field($error_image) . 'An error occurred. Try again.') ); } } add_action( 'widgets_init', function () { register_widget( 'WooNotify_360Messenger_Subscription' ); } );