• Resolved PlanetThoughts

    (@opalcomp)


    Everything worked with PHP 8.3.33. When I switch to 8.3.36 (the security update) the same page gives this error:

    PHP Fatal error: Uncaught Error: Call to undefined function Elementor\mb_strtolower() in C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\utils.php:724 Stack trace: #0 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor-pro\modules\custom-attributes\module.php(134): Elementor\Utils::parse_custom_attributes() #1 C:\home\insightandenergy.com\wwwroot\wp-includes\class-wp-hook.php(353): ElementorPro\Modules\CustomAttributes\Module->render_attributes() #2 C:\home\insightandenergy.com\wwwroot\wp-includes\class-wp-hook.php(377): WP_Hook->apply_filters() #3 C:\home\insightandenergy.com\wwwroot\wp-includes\plugin.php(523): WP_Hook->do_action() #4 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\base\element-base.php(856): do_action() #5 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\base\widget-base.php(501): Elementor\Element_Base->add_render_attributes() #6 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\base\element-base.php(547): Elementor\Widget_Base->add_render_attributes() #7 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\base\element-base.php(1484): Elementor\Element_Base->print_element() #8 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\base\element-base.php(522): Elementor\Element_Base->print_content() #9 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\core\base\document.php(1946): Elementor\Element_Base->print_element() #10 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\core\base\document.php(1839): Elementor\Core\Base\Document->do_print_elements() #11 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\core\base\document.php(1236): Elementor\Core\Base\Document->print_elements() #12 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\frontend.php(1223): Elementor\Core\Base\Document->print_elements_with_wrapper() #13 C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\frontend.php(1105): Elementor\Frontend->get_builder_content() #14 C:\home\insightandenergy.com\wwwroot\wp-includes\class-wp-hook.php(353): Elementor\Frontend->apply_builder_in_content() #15 C:\home\insightandenergy.com\wwwroot\wp-includes\plugin.php(206): WP_Hook->apply_filters() #16 C:\home\insightandenergy.com\wwwroot\wp-includes\post-template.php(256): apply_filters() #17 C:\home\insightandenergy.com\wwwroot\wp-content\themes\hello-elementor\template-parts\single.php(24): the_content() #18 C:\home\insightandenergy.com\wwwroot\wp-includes\template.php(882): require(‘…’) #19 C:\home\insightandenergy.com\wwwroot\wp-includes\template.php(815): load_template() #20 C:\home\insightandenergy.com\wwwroot\wp-includes\general-template.php(206): locate_template() #21 C:\home\insightandenergy.com\wwwroot\wp-content\themes\hello-elementor\index.php(20): get_template_part() #22 C:\home\insightandenergy.com\wwwroot\wp-includes\template-loader.php(132): include(‘…’) #23 C:\home\insightandenergy.com\wwwroot\wp-blog-header.php(19): require_once(‘…’) #24 C:\home\insightandenergy.com\wwwroot\index.php(17): require(‘…’) #25 {main} thrown in C:\home\insightandenergy.com\wwwroot\wp-content\plugins\elementor\includes\utils.php on line 724

    The page I need help with: [log in to see the link]

Viewing 6 replies - 1 through 6 (of 6 total)
  • I confirmed the mbstring cause matches Elementor’s actual code and the WordPress 7.1 polyfills, and noted the Windows/IIS path to tailor the app pool restart advice.

    • This reply was modified 4 days, 11 hours ago by softglaze.
    • This reply was modified 4 days, 11 hours ago by softglaze.

    The error says PHP can’t find mb_strtolower(), which comes from PHP’s mbstring extension. So the 8.3.36 build on your server almost certainly has mbstring switched off. Elementor isn’t broken; the new PHP is missing a module the old one had. (WordPress only ships fallbacks for a few mb_ functions, and mb_strtolower isn’t one of them, which is why Elementor is where it shows up first.)

    To confirm: switch to 8.3.36 and open Tools > Site Health. The Status tab lists missing recommended PHP modules, and mbstring should be among them. A phpinfo page shows the same.

    The fix is to enable mbstring for 8.3.36. Your paths (C:\home\…\wwwroot) point to a Windows host. There, mbstring is extension=mbstring (php_mbstring.dll) in that PHP version’s php.ini, followed by a restart of the site’s app pool. On shared Windows hosting that’s usually a ticket: “please enable the mbstring extension for PHP 8.3.36, as it is on 8.3.33”. While they’re at it, ask them to compare the other extensions too (intl, gd, curl, zip). A freshly built PHP often loses more than one.

    I wouldn’t stay on 8.3.33 for long: 8.3.36 is the release that fixes this week’s critical PHP vulnerabilities. Getting the module enabled is worth chasing today rather than rolling back.

    Thread Starter PlanetThoughts

    (@opalcomp)

    Your post is gold. Thank you. The current extension settings are below. Do I just uncomment the extensions you mentioned, or is there more to it? TIA.

    The current extensions sequence shows:

    ;extension=curl
    ;extension=ffi
    ;extension=ftp
    ;extension=fileinfo
    ;extension=gd
    ;extension=gettext
    ;extension=gmp
    ;extension=intl
    ;extension=imap
    ;extension=mbstring
    ;extension=exif ; Must be after mbstring as it depends on it
    extension=mysqli
    ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
    ;extension=oci8_19 ; Use with Oracle Database 19 Instant Client
    ;extension=odbc
    ;extension=openssl
    ;extension=pdo_firebird
    ;extension=pdo_mysql
    ;extension=pdo_oci
    ;extension=pdo_odbc
    ;extension=pdo_pgsql
    ;extension=pdo_sqlite
    ;extension=pgsql
    ;extension=shmop
    Thread Starter PlanetThoughts

    (@opalcomp)

    Also, I see there are more:
    ;extension=snmp
    ;extension=soap
    ;extension=sockets
    ;extension=sodium
    ;extension=sqlite3
    ;extension=tidy
    ;extension=xsl
    ;extension=zip
    ;zend_extension=opcache

    Thread Starter PlanetThoughts

    (@opalcomp)

    After restoring the database from one week ago (UpdraftPlus thank you!) and activating all the extensions from 8.3.33 in 8.3.36, things are finally working again.

    Thank you, @daynementier.

    Glad it’s working again, and thanks for reporting back. One thing worth checking: since you restored a database from a week ago, anything added in that week (posts, comments, orders, form entries) won’t be in it. If anything is missing, UpdraftPlus can restore just the database from a newer backup now that PHP is fixed.

Viewing 6 replies - 1 through 6 (of 6 total)

You must be logged in to reply to this topic.