Changeset 3798741
- Timestamp:
- 11/12/2026 04:08:02 PM (15 hours ago)
- Location:
- ez-login
- Files:
-
- 98 added
- 6 edited
-
tags/2.0.8 (added)
-
tags/2.0.8/assets (added)
-
tags/2.0.8/assets/css (added)
-
tags/2.0.8/assets/css/admin-panel.css (added)
-
tags/2.0.8/assets/css/custom-login.css (added)
-
tags/2.0.8/assets/css/index.php (added)
-
tags/2.0.8/assets/css/panel.css (added)
-
tags/2.0.8/assets/css/password-auth.css (added)
-
tags/2.0.8/assets/css/woocommerce-alerts.css (added)
-
tags/2.0.8/assets/font (added)
-
tags/2.0.8/assets/font/Yekan.woff (added)
-
tags/2.0.8/assets/font/index.php (added)
-
tags/2.0.8/assets/images (added)
-
tags/2.0.8/assets/images/cs-login-logo.jpg (added)
-
tags/2.0.8/assets/index.php (added)
-
tags/2.0.8/assets/js (added)
-
tags/2.0.8/assets/js/account-recovery.js (added)
-
tags/2.0.8/assets/js/admin-settings.js (added)
-
tags/2.0.8/assets/js/bale-login.js (added)
-
tags/2.0.8/assets/js/custom-login.js (added)
-
tags/2.0.8/assets/js/email-otp.js (added)
-
tags/2.0.8/assets/js/front-login-replacement.js (added)
-
tags/2.0.8/assets/js/index.php (added)
-
tags/2.0.8/assets/js/passkey-native.js (added)
-
tags/2.0.8/assets/js/password-auth.js (added)
-
tags/2.0.8/assets/js/phone-change.js (added)
-
tags/2.0.8/assets/js/shahkar-admin.js (added)
-
tags/2.0.8/assets/js/shahkar-public.js (added)
-
tags/2.0.8/assets/js/woocommerce-alerts.js (added)
-
tags/2.0.8/ez-login.php (added)
-
tags/2.0.8/includes (added)
-
tags/2.0.8/includes/abandoned-cart.php (added)
-
tags/2.0.8/includes/account-recovery.php (added)
-
tags/2.0.8/includes/admin-auth.php (added)
-
tags/2.0.8/includes/admin-bootstrap.php (added)
-
tags/2.0.8/includes/admin-login-methods.php (added)
-
tags/2.0.8/includes/admin-page-style.php (added)
-
tags/2.0.8/includes/admin-settings.php (added)
-
tags/2.0.8/includes/asset-loader.php (added)
-
tags/2.0.8/includes/bale-login.php (added)
-
tags/2.0.8/includes/bale-otp.php (added)
-
tags/2.0.8/includes/bale-user-reminders.php (added)
-
tags/2.0.8/includes/checkout-blocks.php (added)
-
tags/2.0.8/includes/core (added)
-
tags/2.0.8/includes/core/form-renderer.php (added)
-
tags/2.0.8/includes/core/index.php (added)
-
tags/2.0.8/includes/custom-login-page.php (added)
-
tags/2.0.8/includes/elementor-widget.php (added)
-
tags/2.0.8/includes/email-otp.php (added)
-
tags/2.0.8/includes/external-fields.php (added)
-
tags/2.0.8/includes/force-login.php (added)
-
tags/2.0.8/includes/form-builder-compat.php (added)
-
tags/2.0.8/includes/front-login-replacement.php (added)
-
tags/2.0.8/includes/google-login.php (added)
-
tags/2.0.8/includes/helpers.php (added)
-
tags/2.0.8/includes/index.php (added)
-
tags/2.0.8/includes/learndash-compat.php (added)
-
tags/2.0.8/includes/logger.php (added)
-
tags/2.0.8/includes/order-notify.php (added)
-
tags/2.0.8/includes/passkey-native.php (added)
-
tags/2.0.8/includes/password-auth.php (added)
-
tags/2.0.8/includes/phone-change.php (added)
-
tags/2.0.8/includes/review-reminder.php (added)
-
tags/2.0.8/includes/session.php (added)
-
tags/2.0.8/includes/shahkar.php (added)
-
tags/2.0.8/includes/shortcode-style.php (added)
-
tags/2.0.8/includes/shortcodes (added)
-
tags/2.0.8/includes/shortcodes.php (added)
-
tags/2.0.8/includes/shortcodes/index.php (added)
-
tags/2.0.8/includes/shortcodes/shortcode.php (added)
-
tags/2.0.8/includes/sms-login.php (added)
-
tags/2.0.8/includes/stats-dashboard.php (added)
-
tags/2.0.8/includes/styles.php (added)
-
tags/2.0.8/includes/support-diagnostics.php (added)
-
tags/2.0.8/includes/totp.php (added)
-
tags/2.0.8/includes/trusted-device.php (added)
-
tags/2.0.8/includes/user-panel.php (added)
-
tags/2.0.8/includes/widgets (added)
-
tags/2.0.8/includes/widgets/class-cs-login-password-widget.php (added)
-
tags/2.0.8/includes/widgets/class-cs-login-security-widgets.php (added)
-
tags/2.0.8/includes/widgets/class-ez-login-advanced-elementor-widget.php (added)
-
tags/2.0.8/includes/widgets/class-ez-login-elementor-widget.php (added)
-
tags/2.0.8/includes/widgets/class-ez-user-panel-elementor-widget.php (added)
-
tags/2.0.8/includes/widgets/class-ez-woocommerce-alert-widgets.php (added)
-
tags/2.0.8/includes/woo-automations.php (added)
-
tags/2.0.8/includes/woo-checkout-email.php (added)
-
tags/2.0.8/includes/woo-login-features.php (added)
-
tags/2.0.8/includes/woocommerce-alerts.php (added)
-
tags/2.0.8/index.php (added)
-
tags/2.0.8/readme.txt (added)
-
tags/2.0.8/templates (added)
-
tags/2.0.8/templates/woocommerce (added)
-
tags/2.0.8/templates/woocommerce/account-entry.php (added)
-
tags/2.0.8/templates/woocommerce/global (added)
-
tags/2.0.8/templates/woocommerce/global/form-login.php (added)
-
tags/2.0.8/templates/woocommerce/myaccount (added)
-
tags/2.0.8/templates/woocommerce/myaccount/form-login.php (added)
-
tags/2.0.8/uninstall.php (added)
-
trunk/assets/css/admin-panel.css (modified) (1 diff)
-
trunk/assets/js/admin-settings.js (modified) (2 diffs)
-
trunk/ez-login.php (modified) (2 diffs)
-
trunk/includes/admin-settings.php (modified) (6 diffs)
-
trunk/includes/shahkar.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ez-login/trunk/assets/css/admin-panel.css
r3777651 r3798741 849 849 .wrap.ez-admin .ez-admin-sidebar .ez-admin-nav__item[hidden], 850 850 .wrap.ez-admin .ez-admin-sidebar .ez-admin-nav__section-title[hidden] { display:none !important; } 851 852 /* 2.0.8: the main Shahkar menu stays visible with a subtle experimental label. */ 853 .ez-admin-nav__item[data-ez-admin-nav-item="shahkar"] .ez-admin-nav__badge{background:#fff4e6;color:#9a5b0d;white-space:nowrap;font-size:10px;padding:2px 6px} 854 .wrap.ez-admin .ez-admin-sidebar [data-ez-admin-nav-item="shahkar"][data-ez-shahkar-enabled="0"] > a:after{display:none} -
ez-login/trunk/assets/js/admin-settings.js
r3777651 r3798741 133 133 }); 134 134 var $shahkar = $('.ez-admin-nav__item[data-ez-admin-nav-item="shahkar"]'); 135 $shahkar.toggleClass('is-expanded', inShahkar); 136 $shahkar.children('a[data-ez-admin-tab="shahkar"]').attr('aria-expanded', inShahkar ? 'true' : 'false'); 135 var showShahkarChildren = inShahkar && $shahkar.attr('data-ez-shahkar-enabled') === '1'; 136 $shahkar.toggleClass('is-expanded', showShahkarChildren); 137 $shahkar.children('a[data-ez-admin-tab="shahkar"]').attr('aria-expanded', showShahkarChildren ? 'true' : 'false'); 137 138 } 138 139 … … 1127 1128 if (tab === 'shahkar') { 1128 1129 var $shahkar = $('.ez-admin-nav__item[data-ez-admin-nav-item="shahkar"]'); 1130 // Disabled Shahkar remains navigable for activation, but its children stay hidden. 1131 if ($shahkar.attr('data-ez-shahkar-enabled') !== '1') { 1132 $shahkar.removeClass('is-expanded').children('a[data-ez-admin-tab="shahkar"]').attr('aria-expanded', 'false'); 1133 if (tab === state.tab && !state.loading) { scrollPanelTop(false); return; } 1134 loadTab(tab, true); 1135 return; 1136 } 1129 1137 if (tab === state.tab && !state.loading) { 1130 1138 var expanded = !$shahkar.hasClass('is-expanded'); -
ez-login/trunk/ez-login.php
r3777651 r3798741 3 3 * Plugin Name: CS-Login 4 4 * Description: ورود/ثبتنام با پیامک و گوگل، اعلانهای ووکامرس، اطلاع تخفیف و موجودی، خبرنامه پیامکی، سبد رهاشده، Elementor، کپچا و کنترل امنیتی. 5 * Version: 2.0. 75 * Version: 2.0.8 6 6 * Requires at least: 5.8 7 7 * Requires PHP: 7.4 … … 86 86 define('EZ_LOGIN_DIR', plugin_dir_path(__FILE__)); 87 87 define('EZ_LOGIN_URL', plugin_dir_url(__FILE__)); 88 define('EZ_LOGIN_VERSION', '2.0. 7');88 define('EZ_LOGIN_VERSION', '2.0.8'); 89 89 90 90 require_once EZ_LOGIN_DIR . 'includes/helpers.php'; -
ez-login/trunk/includes/admin-settings.php
r3777651 r3798741 1076 1076 } 1077 1077 } 1078 // The Shahkar settings page must remain reachable even before activation. 1079 // Only its child pages are conditional; keeping the parent visible also works 1080 // on installations without WooCommerce (administrative inquiries are independent). 1078 1081 $shahkar_opts = (array) get_option('cs_shahkar_options', array()); 1079 $shahkar_ visible = $woo_active &&!empty($shahkar_opts['enabled']);1082 $shahkar_enabled = !empty($shahkar_opts['enabled']); 1080 1083 $items = array( 1081 1084 array('group'=>'ورود و حساب کاربری','tab'=>'sms','label'=>'ورود با پیامک','icon'=>'dashicons-smartphone'), … … 1110 1113 if ($woo_available) { 1111 1114 $items[] = array('group'=>'فروشگاه و اعلانها','tab'=>'commerce','label'=>'ووکامرس و اعلانها','icon'=>'dashicons-cart','hidden'=>!$any_woo_feature); 1112 $items[] = array('group'=>'فروشگاه و اعلانها','tab'=>'shahkar','label'=>'سامانه شاهکار (آزمایشی)','icon'=>'dashicons-shield-alt','hidden'=>!$shahkar_visible); 1115 } 1116 // Visible regardless of enabled state or WooCommerce; children appear only 1117 // after the admin enables Shahkar and the settings page reloads. 1118 $items[] = array('group'=>'فروشگاه و اعلانها','tab'=>'shahkar','label'=>'سامانه شاهکار','badge'=>'آزمایشی','icon'=>'dashicons-shield-alt','subnav_enabled'=>$shahkar_enabled); 1119 if ($shahkar_enabled) { 1113 1120 $items[] = array('group'=>'فروشگاه و اعلانها','tab'=>'shahkar_mapping','label'=>'نگاشت فیلدها','icon'=>'dashicons-admin-settings','parent'=>'shahkar'); 1114 1121 $items[] = array('group'=>'فروشگاه و اعلانها','tab'=>'shahkar_inquiry','label'=>'استعلام کاربران','icon'=>'dashicons-search','parent'=>'shahkar'); … … 1145 1152 <?php endif; ?> 1146 1153 <?php if (!empty($item['parent'])) continue; ?> 1147 <div class="ez-admin-nav__item<?php echo in_array($item['tab'],array('commerce','shahkar'),true) ? ' has-subnav' : ''; ?><?php echo ($active_tab === $item['tab'] || ($item['tab']==='shahkar' && in_array($active_tab,array('shahkar_mapping','shahkar_inquiry','shahkar_audit'),true))) ? ' is-current' : ''; ?><?php echo ($item['tab']==='shahkar' && in_array($active_tab,array('shahkar','shahkar_mapping','shahkar_inquiry','shahkar_audit'),true)) ? ' is-expanded' : ''; ?>" data-ez-admin-nav-item="<?php echo esc_attr($item['tab']); ?>"<?php echo !empty($item['hidden']) ? ' hidden' : ''; ?>>1154 <div class="ez-admin-nav__item<?php echo ($item['tab']==='commerce' || ($item['tab']==='shahkar' && !empty($item['subnav_enabled']))) ? ' has-subnav' : ''; ?><?php echo ($active_tab === $item['tab'] || ($item['tab']==='shahkar' && in_array($active_tab,array('shahkar_mapping','shahkar_inquiry','shahkar_audit'),true))) ? ' is-current' : ''; ?><?php echo ($item['tab']==='shahkar' && !empty($item['subnav_enabled']) && in_array($active_tab,array('shahkar','shahkar_mapping','shahkar_inquiry','shahkar_audit'),true)) ? ' is-expanded' : ''; ?>" data-ez-admin-nav-item="<?php echo esc_attr($item['tab']); ?>"<?php if ($item['tab'] === 'shahkar'): ?> data-ez-shahkar-enabled="<?php echo !empty($item['subnav_enabled']) ? '1' : '0'; ?>"<?php endif; ?><?php echo !empty($item['hidden']) ? ' hidden' : ''; ?>> 1148 1155 <a href="<?php echo esc_url(ez_login_admin_tab_url($item['tab'])); ?>" 1149 1156 data-ez-admin-tab="<?php echo esc_attr($item['tab']); ?>" 1150 class="<?php echo $active_tab === $item['tab'] ? 'is-active' : ''; ?>"<?php if ($item['tab'] === 'shahkar'): ?> aria-expanded="<?php echo in_array($active_tab,array('shahkar','shahkar_mapping','shahkar_inquiry','shahkar_audit'),true) ? 'true' : 'false'; ?>" aria-controls="cs-shahkar-submenu"<?php endif; ?>>1157 class="<?php echo $active_tab === $item['tab'] ? 'is-active' : ''; ?>"<?php if ($item['tab'] === 'shahkar'): ?> aria-expanded="<?php echo !empty($item['subnav_enabled']) && in_array($active_tab,array('shahkar','shahkar_mapping','shahkar_inquiry','shahkar_audit'),true) ? 'true' : 'false'; ?>"<?php if (!empty($item['subnav_enabled'])): ?> aria-controls="cs-shahkar-submenu"<?php endif; ?><?php endif; ?>> 1151 1158 <span class="dashicons <?php echo esc_attr($item['icon']); ?>"></span> 1152 1159 <span><?php echo esc_html($item['label']); ?></span> … … 1163 1170 </div> 1164 1171 <?php endif; ?> 1165 <?php if ($item['tab'] === 'shahkar' ): ?>1166 <?php // زیرمنوها با کلیک عنوان شاهکار باز میشوند و در صفحات زیرمجموعه باز میمانند. ?>1172 <?php if ($item['tab'] === 'shahkar' && !empty($item['subnav_enabled'])): ?> 1173 <?php // زیرمنوها فقط پس از فعالسازی و بارگذاری مجدد صفحه ساخته میشوند. ?> 1167 1174 <nav id="cs-shahkar-submenu" class="ez-admin-subnav ez-admin-subnav--shahkar" aria-label="زیرمنوهای سامانه شاهکار"> 1168 1175 <?php foreach (array( … … 3008 3015 </div> 3009 3016 3010 <?php if ($has_woo): ?> 3011 <?php $shopts = (array)get_option('cs_shahkar_options', array()); ?> 3012 <div class="ez-alert ez-alert--info" style="margin-bottom:16px"> 3013 <strong>سامانه شاهکار:</strong> <?php echo !empty($shopts['enabled']) ? 'فعال است.' : 'غیرفعال است و منوی آن مخفی شده.'; ?> 3014 <a class="button button-small" href="<?php echo esc_url(ez_login_admin_tab_url('shahkar')); ?>">تنظیمات / فعالسازی سامانه شاهکار</a> 3015 </div> 3016 <?php endif; ?> 3017 <?php $shopts = (array)get_option('cs_shahkar_options', array()); ?> 3018 <div class="ez-alert ez-alert--info" style="margin-bottom:16px"> 3019 <strong>سامانه شاهکار (آزمایشی):</strong> <?php echo !empty($shopts['enabled']) ? 'فعال است و زیرمنوهای آن قابل مشاهدهاند.' : 'غیرفعال است؛ منوی اصلی برای فعالسازی نمایش داده میشود.'; ?> 3020 <a class="button button-small" href="<?php echo esc_url(ez_login_admin_tab_url('shahkar')); ?>">تنظیمات / فعالسازی سامانه شاهکار</a> 3021 </div> 3017 3022 <div class="ez-feature-tabs" role="tablist" aria-label="دستهبندی قابلیتها"> 3018 3023 <button type="button" class="ez-feature-tab is-active" role="tab" aria-selected="true" data-ez-feature-tab="main">قابلیتهای اصلی</button> … … 3295 3300 function ez_login_render_changelog_page() { 3296 3301 $features = array( 3302 'نسخه 2.0.8: منوی سامانه شاهکار (آزمایشی) همیشه نمایش داده میشود؛ زیرمنوها فقط پس از فعالسازی و بارگذاری مجدد صفحه ظاهر میشوند، حتی اگر ووکامرس نصب نباشد.', 3297 3303 'نسخه 2.0.3: فهرست شورتکدها به کارتهای مستقل با وضعیت، کپی و لینک تنظیمات تبدیل شد؛ زیرمنوی شاهکار با کلیک باز و بسته میشود؛ بازطراحی دکمههای اتصال و وضعیت رنگی تست API.', 3298 3304 'نسخه 2.0.2: منوهای فرعی شاهکار همیشه بهصورت تودرتو و قابلمشاهده زیر عنوان سامانه شاهکار قرار دارند؛ اصلاح عرض ۱۰۰٪ صفحات شاهکار و حذف محدودیت عرض قبلی.', -
ez-login/trunk/includes/shahkar.php
r3777651 r3798741 238 238 }else wp_die('فرم نامعتبر است.'); 239 239 update_option('cs_shahkar_options',$new,false); 240 // admin-post redirect is a full reload: newly enabled child menus are rendered immediately. 240 241 $tab=$form==='mapping'?'shahkar_mapping':'shahkar'; 241 242 wp_safe_redirect(add_query_arg('cs_sh_saved','1',admin_url('admin.php?page=ez-login&tab='.$tab)));exit; -
ez-login/trunk/readme.txt
r3777651 r3798741 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 2.0. 77 Stable tag: 2.0.8 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 291 291 292 292 == Changelog == 293 294 = 2.0.8 = 295 * منوی «سامانه شاهکار» با نشان «آزمایشی» همیشه در سایدبار افزونه دیده میشود، حتی اگر سامانه خاموش یا ووکامرس غیرفعال باشد. 296 * زیرمنوهای نگاشت فیلدها، استعلام کاربران و گزارش مصرف تنها پس از فعالسازی سامانه نمایش داده میشوند. 297 * پس از ذخیره فعالسازی، صفحه مدیریت بهطور کامل بارگذاری مجدد میشود و زیرمنوها همان لحظه ظاهر میشوند؛ با غیرفعالسازی دوباره پنهان میشوند. 298 * اسلاگ ez-login و تنظیمات قبلی کاربران حفظ شدهاند. 293 299 294 300 = 2.0.7 =
Note:
See TracChangeset
for help on using the changeset viewer.