غیر فعال شدن ویرایش صفحات به دلیل خطا در المنتور

روز بخیر

در سایت یکی از مشتریان دو روز است که امکان ویرایش صفحات ممکن نیست و برای هر صفحه ای که در پنل ادمین باز میکنم، پیام خطای زیر نشان داده میشود.

 

Warning: Undefined array key “promotionWidgets” in /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php on line 165

Fatal error: Uncaught TypeError: Elementor\Core\Editor\Loader\Common\Editor_Common_Scripts_Settings::ensure_numeric_keys(): Argument #1 ($array) must be of type array, null given, called in /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php on line 165 and defined in /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php:180 Stack trace: #0 /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php(165): Elementor\Core\Editor\Loader\Common\Editor_Common_Scripts_Settings::ensure_numeric_keys() #1 /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/v2/editor-v2-loader.php(167): Elementor\Core\Editor\Loader\Common\Editor_Common_Scripts_Settings::get() #2 /home/*********/public_html/wp-content/plugins/elementor/core/editor/editor.php(355): Elementor\Core\Editor\Loader\V2\Editor_V2_Loader->enqueue_scripts() #3 /home/*********/public_html/wp-includes/class-wp-hook.php(324): Elementor\Core\Editor\Editor->enqueue_scripts() #4 /home/*********/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #5 /home/*********/public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #6 /home/*********/public_html/wp-includes/script-loader.php(2299): do_action() #7 /home/*********/public_html/wp-includes/class-wp-hook.php(324): wp_enqueue_scripts() #8 /home/*********/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #9 /home/*********/public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #10 /home/*********/public_html/wp-includes/general-template.php(3192): do_action() #11 /home/*********/public_html/wp-content/plugins/elementor/includes/editor-templates/editor-wrapper.php(31): wp_head() #12 /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/v2/editor-v2-loader.php(217): include(‘/home/*********/…’) #13 /home/*********/public_html/wp-content/plugins/elementor/core/editor/editor.php(160): Elementor\Core\Editor\Loader\V2\Editor_V2_Loader->print_root_template() #14 /home/*********/public_html/wp-includes/class-wp-hook.php(324): Elementor\Core\Editor\Editor->init() #15 /home/*********/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #16 /home/*********/public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #17 /home/*********/public_html/wp-admin/admin.php(420): do_action() #18 /home/*********/public_html/wp-admin/post.php(12): require_once(‘/home/*********/…’) #19 {main} thrown in /home/*********/public_html/wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php on line 180

 

راه حل چیست؟ لازم به توضیح است که المنتور به روز شده ولی نسخه پرو به روز نمیشود و پیام Unauthorized نشان داده میشود.

المنتور باز سوال شده در ۹ شهریور ۱۴۰۴ در المنتور پرو.
افزودن نظر
1 پاسخ(ها)

این خطای
Undefined array key “promotionWidgets”
Fatal error: Argument #1 ($array) must be of type array, null given

یعنی المنتور داره دنبال آرایه‌ای به اسم promotionWidgets می‌گرده، ولی به جای آرایه null گرفته، و وقتی تابع ensure_numeric_keys() رو صدا میزنه، کرش می‌کنه.

این مشکل جدیداً بعد از آپدیت Elementor (نسخه‌های 3.25+ یا 3.26+) زیاد گزارش شده. مخصوصاً زمانی که نسخه Elementor و Elementor Pro هماهنگ نباشن یا کش خراب شده باشه.


🚑 راهکار فوری (برای باز شدن پنل)

  1. با FTP یا File Manager هاست برو به مسیر:

    wp-content/plugins/elementor/core/editor/loader/common/editor-common-scripts-settings.php
  2. خط 165 که اینطوریه:

    self::ensure_numeric_keys( $settings['promotionWidgets'] );

    رو به صورت امن تغییر بده:

    self::ensure_numeric_keys( $settings['promotionWidgets'] ?? [] );

    (اینطوری اگر promotionWidgets تعریف نشده باشه، یه آرایه خالی جایگزین میشه و خطا رفع میشه.)

⚠️ این کار سریع‌ترین راه برای باز کردن پنل ادمینه، ولی بهتره به‌عنوان پچ موقت باشه، چون با آپدیت بعدی افزونه دوباره بازنویسی میشه.


🛠 راهکار دائمی

  1. هماهنگ‌سازی نسخه‌ها

    • برو به افزونه‌ها و مطمئن شو هر دو:

      • Elementor (رایگان)

      • Elementor Pro
        آخرین نسخه و هماهنگ با هم باشن.

    • خیلی وقتا مشکل از اینه که المنتور آپدیت شده ولی Elementor Pro قدیمی مونده.

  2. پاک کردن کش

    • کش افزونه‌ها (LiteSpeed، WP Rocket و …)

    • کش مرورگر

    • اگر Cloudflare فعاله، اون رو هم Purge کن.

  3. بررسی PHP

    • مطمئن شو سایت روی PHP 8.0 یا 8.1 هست (روی 7.4 یا 8.2 بعضی وقتا باگ میده).

  4. اگر همچنان خطا موند → بهتره یک بار Elementor و Elementor Pro رو پاک و دوباره نصب کنی (از آخرین نسخه).



اول مطمئن شو Elementor + Elementor Pro هماهنگ هستن. اگر عجله داری که سریع بتونی صفحات رو ویرایش کنی، همون پچ موقتی که بالا گذاشتم رو بزن.
اگر افزونه هم آپدیت نمیشه یکبار نسخه جدید بگیر از یک سایتی مثل Elementorfa.ir و دستی آپدیت بکن و مشکل حل میشه
اگه باز نشد یکبار کل افزونه هاتو غیر فعال و فعال بکن
باز نشد همرو غیرفعال کن و یکی یکی فعال کن ببین مشکل از کدوم افزونس

المنتور باز پاسخ داده شده در ۲۷ شهریور ۱۴۰۴.
افزودن نظر

پاسخ شما

برای ارسال سوال, شما باید شرایط و ظوابط و شرایط استفاده از خدمات را قبول کنید