S2member-pro breaking website with PHP 8

Simple as that - s2member framework itself is working fine for me with PHP 8. However as soon as I enable s2member-pro website completely crashes. Cannot even find an nginx error log. error 500.

Only solvable by renaming the s2-member-pro plugin folder.

There are still quite a few plugins which break wordpress with PHP8 - s2member-pro is one of the few very bad ones that crash the site as soon as activated. Some others just pop an error notice and cannot be activated.

(for me some other breaking ones:
Broken Link Checker WPMU Dev,
WP Cerber Security, Anti-spam & Malware Scan

Search Regex John Godley
PHP Code Widget
Integration: Yoast SEO & qTranslate-X
Google XML Sitemaps v3 for qTranslate

Would be great if s2member-pro can be made compatible with PHP8 - there is still some time to move but in about 1.6 years PHP 7.4 will have reached it’s end of life… PHP8 is a big change - but no way around it in the future…

2021/03/11 19:29:26 [error] 2680022#2680022: *11 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137`
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-admin/includes/plugin.php(2300): include('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-admin/plugins.php(191): plugin_sandbox_scrape()
#7 {main}
  thrown in /var/www/openmtbma" while reading response header from upstream, client: 2001:b011:800e:314b:bc72:68f0:35b7:cc93, server: www.openmtbmap.org, request: "GET /test3/wp-admin/plugins.php?action=error_scrape&plugin=s2member%2Fs2member.php&_wpnonce=372d545da2 HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php?plugin=s2member%2Fs2member.php"
    2021/03/11 19:29:56 [error] 2680022#2680022: *11 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function create_function() in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php:140
    Stack trace:
    #0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(145): include_once()
    #1 /var/www/openmtbmap.org/htdocs/test3/wp-admin/includes/plugin.php(670): include_once('...')
    #2 /var/www/openmtbmap.org/htdocs/test3/wp-admin/plugins.php(58): activate_plugin()
    #3 {main}
      thrown in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php on line 140" while reading response header from upstream, client: 2001:b011:800e:314b:bc72:68f0:35b7:cc93, server: www.openmtbmap.org, request: "GET /test3/wp-admin/plugins.php?action=activate&plugin=s2member%2Fs2member.php&plugin_status=all&paged=1&s&_wpnonce=4c73d2a10e HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php"
    2021/03/11 19:29:57 [error] 2680022#2680022: *11 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function create_function() in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php:140
    Stack trace:
    #0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(145): include_once()
    #1 /var/www/openmtbmap.org/htdocs/test3/wp-admin/includes/plugin.php(2300): include('...')
    #2 /var/www/openmtbmap.org/htdocs/test3/wp-admin/plugins.php(191): plugin_sandbox_scrape()
    #3 {main}
      thrown in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php on line 140" while reading response header from upstream, client: 2001:b011:800e:314b:bc72:68f0:35b7:cc93, server: www.openmtbmap.org, request: "GET /test3/wp-admin/plugins.php?action=error_scrape&plugin=s2member%2Fs2member.php&_wpnonce=372d545da2 HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php?plugin=s2member%2Fs2member.php"
    2021/03/11 19:29:57 [error] 2680022#2680022: *11 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function create_function() in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php:140
    Stack trace:
    #0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(145): include_once()
    #1 /var/www/openmtbmap.org/htdocs/test3/wp-admin/includes/plugin.php(2300): include('...')
    #2 /var/www/openmtbmap.org/htdocs/test3/wp-admin/plugins.php(191): plugin_sandbox_scrape()
    #3 {main}
      thrown in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/pro-module.php on line 140" while reading response header from upstream, client: 2001:b011:800e:314b:bc72:68f0:35b7:cc93, server: www.openmtbmap.org, request: "GET /test3/wp-admin/plugins.php?action=error_scrape&plugin=s2member%2Fs2member.php&_wpnonce=372d545da2 HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php?plugin=s2member%2Fs2member.php"

Hi Felix.

Thanks for the heads-up!

It looks like the error in the syscon may be from the semicolons in the sprintf’s string there. I’ll check it out soon when I upgrade my testing installation to PHP8 and confirm. But if you remove them, do you still get the error?

Regarding the create_function errors, what version of Pro are you trying? I removed create_function in early December: https://s2member.com/s2member-v201209-rc-release-candidate/

Let me know. :slight_smile:

I’m using the latest regular version. 210208

Hmm… How strange… Could you get the zip file again and look in the pro-module.php file? https://s2member.com/account/

I double checked just now the release zip, and create_function is in that file. For a moment I worried that I may have forgotten to push those changes to github, but I did. https://github.com/wpsharks/s2member-pro/commit/f0b9d4ef420362ed33b5b4b192c75e4b941475cd

This is an interesting mystery! Let me know what you find. :slight_smile:

I’m not fully sure what is happening - but here are some more error notices on a new tryout:

Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): qwpseo_init_language()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/qtranslate-xt/qtranslate_core.php(137): do_action()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): qtranxf_init_language()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#6 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#7 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(423): do_action()
#8 /var/www/openmtbmap" while reading response header from upstream, client: 2001:b011:800e:373f:b8e8:7a28:5854:4d20, server: www.openmtbmap.org, request: "GET /test3/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s= HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php?plugin_status=all&paged=1&s"
2021/03/15 06:02:46 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ" while reading response header from upstream, client: 2001:b011:800e:373f:b8e8:7a28:5854:4d20, server: www.openmtbmap.org, request: "POST /test3/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/plugins.php?plugin_status=all&paged=1&s"
2021/03/15 06:03:12 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ...PHP message: PHP Fatal error:  Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, class "c_ws_plugin__s2member_user_securities" not found in /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php:292
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(48): do_action()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-includes/user.php(3167): wp_set_current_user()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(70): _wp_get_current_user()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(97): wp_get_current_user()
#6 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(140): get_user_locale()
#7 /var/www/openmtbmap.org/htdocs/test3/wp-includes/gener
2021/03/15 06:03:19 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ" while reading response header from upstream, client: 2001:b011:800e:373f:b8e8:7a28:5854:4d20, server: www.openmtbmap.org, request: "GET /test3/ HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org"
2021/03/15 06:04:08 [crit] 2856651#2856651: *2568 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 35.203.245.221, server: 0.0.0.0:443
2021/03/15 06:04:09 [crit] 2856651#2856651: *2572 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 35.203.251.52, server: 0.0.0.0:443
2021/03/15 06:04:38 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ...PHP message: PHP Fatal error:  Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, class "c_ws_plugin__s2member_user_securities" not found in /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php:292
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(48): do_action()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-includes/user.php(3167): wp_set_current_user()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(70): _wp_get_current_user()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(97): wp_get_current_user()
#6 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(140): get_user_locale()
#7 /var/www/openmtbmap.org/htdocs/test3/wp-includes/gener
2021/03/15 06:08:51 [error] 2856651#2856651: *2732 limiting connections by zone "addr", client: 2003:f6:670b:1000:14f5:520a:4c94:9b35, server: www.openmtbmap.org, request: "GET /wp-content/cache/autoptimize/js/autoptimize_single_acfccd94c2c01dbec0275f476cb5f827.js HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/download/gmapsupp/"
2021/03/15 06:09:56 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ" while reading response header from upstream, client: 2001:b011:800e:373f:b8e8:7a28:5854:4d20, server: www.openmtbmap.org, request: "POST /test3/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/update.php?action=upload-plugin"
2021/03/15 06:09:57 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ" while reading response header from upstream, client: 2001:b011:800e:373f:b8e8:7a28:5854:4d20, server: www.openmtbmap.org, request: "POST /test3/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://127.0.0.1:9090", host: "openmtbmap.org", referrer: "https://openmtbmap.org/test3/wp-admin/update.php?action=upload-plugin"
2021/03/15 06:10:03 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ...PHP message: PHP Fatal error:  Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, class "c_ws_plugin__s2member_user_securities" not found in /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php:292
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(48): do_action()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-includes/user.php(3167): wp_set_current_user()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(70): _wp_get_current_user()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(97): wp_get_current_user()
#6 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(140): get_user_locale()
#7 /var/www/openmtbmap.org/htdocs/test3/wp-includes/gener
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/uploads/mapsource1.gif HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/images/installation/13.png HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/uploads/mapsource4.gif HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/uploads/Screenshot-2021-01-26-104407.png HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-includes/js/comment-reply.min.js HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/plugins/cookie-notice/js/front.min.js HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:24 [error] 2856651#2856651: *2861 limiting connections by zone "addr", client: 2001:a61:b27:bb01:490b:1b26:9806:2b2a, server: www.openmtbmap.org, request: "GET /wp-content/cache/autoptimize/js/autoptimize_single_67c8e40e7e373a39f859c27ee6592c33.js HTTP/2.0", host: "openmtbmap.org", referrer: "https://openmtbmap.org/de/tutorials/send_maps/comment-page-3/"
2021/03/15 06:10:47 [error] 2856651#2856651: *1295 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ValueError: Unknown format specifier ";" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-settings.php(391): include_once('...')
#6 /var/www/openmtbmap.org/htdocs/test3/wp-config.php(90): require_once('...')
#7 /var/www/openmtbmap.org/htdocs/test3/wp-load.php(37): requ...PHP message: PHP Fatal error:  Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, class "c_ws_plugin__s2member_user_securities" not found in /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php:292
Stack trace:
#0 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(484): WP_Hook->do_action()
#2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(48): do_action()
#3 /var/www/openmtbmap.org/htdocs/test3/wp-includes/user.php(3167): wp_set_current_user()
#4 /var/www/openmtbmap.org/htdocs/test3/wp-includes/pluggable.php(70): _wp_get_current_user()
#5 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(97): wp_get_current_user()
#6 /var/www/openmtbmap.org/htdocs/test3/wp-includes/l10n.php(140): get_user_locale()
#7 /var/www/openmtbmap.org/htdocs/test3/wp-includes/gener

Actually maybe something didn’t work on the s2member-pro update? And there have been obsolete parts? So only a full delete and reinstall vs just updating caused this?

Right now I don’t manage to replicate the error anymore.

However what I can kinda replicate is - if I change the folder name of the s2member pro plugin - it’s crashing my website.
Now when I upload the new s2member pro plugin - it will again crash my website. As soon as I rename it to sember-pro.bak the website comes back alive.

I have no clue what is happening here - but with php 8 it seems there is some strange bug on s2member pro and its folder name. I’m not able to activate s2member-pro if the folder is named s2member-pro it will crash the website. If I rename it to s2member-pro.bak it will come back fine.

Interesting behavior.

Well, if you do get errors from something in that folder, it doesn’t surprise me that enabling it bring down the site. Giving it an incorrect name makes it to not load.

Most of the errors you added are related to the same line you mentioned first, line 137 in Pro’s syscon.inc.php. Did you test removing the semi-colons from that string as I mentioned before?

Nope not yet. Will try tomorrow

I don’t know how to properly remove it - now it gives me:
Fatal error : Uncaught ValueError: Unknown format specifier “”" in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php:137 Stack trace: #0 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php(137): sprintf() #1 /var/www/openmtbmap.org/htdocs/test3/wp-includes/class-wp-hook.php(292): ws_plugin__s2member_pro_default_options() #2 /var/www/openmtbmap.org/htdocs/test3/wp-includes/plugin.php(212): WP_Hook->apply_filters() #3 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/src/includes/syscon.inc.php(355): apply_filters() #4 /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member/s2member.php(155): ws_plugin__s2member_configure_options_and_their_defaults() #5 /var/www/openmtbmap.org/htdocs/test3/wp-admin/includes/plugin.php(2300): include(’…’) #6 /var/www/openmtbmap.org/htdocs/test3/wp-admin/plugins.php(191): plugin_sandbox_scrape() #7 {main} thrown in /var/www/openmtbmap.org/htdocs/test3/wp-content/plugins/s2member-pro/src/includes/syscon.inc.php on line 137

could you please check that line and send me a correct version?

okay - I just deleted the whole line - no error so far. Not fully sure however if there aren’t any other errors. I don’t use clickbank anyhow…

Well it would be great if you can check s2member and s2member-pro more thoroughly for php 8 errors then publish a new version. Most plugins on wordpress.org by now are php 8 compatible - 2,3 months back this was not the case.
As in my logs there was at least one other error related to s2member (put the logs above anyhow). I would like to update to PHP 8 rather sooner than later…

For me I will likely just ditch the q-translate x related plugins (as qtranslate x was replaced by qtranslate xt and an update is very unlikely), and wait for Search Regex to publish a new version… My other plugins except s2member-pro at least all seem to work fine on test server.

I was mistaken about
Broken Link Checker WPMU Dev,
WP Cerber Security, Anti-spam & Malware Scan

they are working fine.

All other plugins are working now - it is really bloody time for s2member pro to be php8 compatible. I tested it since quite some time now - just remove that ■■■■ line 137 and it’s allright. Nearly all wordpress plugins are now php8 compatible. s2member-pro is more and more the lonely exceptiion.
PHP8 adoption has gone pretty far already.

+1 request to authors to make it adopted!

Has this issue been fixed yet? I just had the same problem when my provider updated to PHP8. I first installed S2Member Pro in November, so I don’t have any older files on the server. I had to comment out that same Line 137 to get my site to load.

Thanks
Rick Waller

No it hasn’t been fixed yet. There has been an update since I posted that fix but it wasn’t included - I really wonder why. No one needs that line!

A critical point for me as well. Is s2member still actively developed and maintained at all? I had the impression that things were looking up again after the upheaval. Now, however, down again for several months.

Is there any doubt that it can be relied on in the future? There will come the point, where we need a PHP 8 solution.

1 Like

Latest update and it is still broken on PHP 8