Pocket

古いプラグインで、今は公式repositoryからDLできないCF7DB。
https://wordpress.org/plugins/contact-form-7-to-database-extension/

久しぶりに使ったら、エラーが出ていた。

[24-Apr-2025 13:26:56 Asia/Tokyo] PHP Fatal error:  Uncaught TypeError: implode(): Argument #1 ($separator) must be of type string, array given in /somewp/wp-content/plugins/contact-form-7-to-database-extension/CF7DBPlugin.php:855
Stack trace:
#0 /somewp/wp-content/plugins/contact-form-7-to-database-extension/CF7DBPlugin.php(855): implode(Array, ', ')
#1 /somewp/wp-content/plugins/contact-form-7-to-database-extension/CFDBIntegrationContactForm7.php(55): CF7DBPlugin->saveFormData(Object(stdClass))
#2 /somewp/wp-includes/class-wp-hook.php(326): CFDBIntegrationContactForm7->saveFormData(Object(WPCF7_ContactForm))
#3 /somewp/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#4 /somewp/wp-includes/plugin.php(565): WP_Hook->do_action(Array)
#5 /somewp/wp-content/plugins/contact-form-7/includes/submission.php(710): do_action_ref_array('wpcf7_before_se...', Array)
#6 /somewp/wp-content/plugins/contact-form-7/includes/submission.php(111): WPCF7_Submission->before_send_mail()
#7 [internal function]: WPCF7_Submission->{closure:WPCF7_Submission::proceed():84}()
#8 /somewp/wp-content/plugins/contact-form-7/includes/l10n.php(147): call_user_func(Object(Closure))
#9 /somewp/wp-content/plugins/contact-form-7/includes/submission.php(137): wpcf7_switch_locale('ja', Object(Closure))
#10 /somewp/wp-content/plugins/contact-form-7/includes/submission.php(35): WPCF7_Submission->proceed()
#11 /somewp/wp-content/plugins/contact-form-7/includes/contact-form.php(1062): WPCF7_Submission::get_instance(Object(WPCF7_ContactForm), Array)
#12 /somewp/wp-content/plugins/contact-form-7/includes/rest-api.php(365): WPCF7_ContactForm->submit()
#13 /somewp/wp-includes/rest-api/class-wp-rest-server.php(1292): WPCF7_REST_Controller->create_feedback(Object(WP_REST_Request))
#14 /somewp/wp-includes/rest-api/class-wp-rest-server.php(1125): WP_REST_Server->respond_to_request(Object(WP_REST_Request), '/contact-form-7...', Array, NULL)
#15 /somewp/wp-includes/rest-api/class-wp-rest-server.php(439): WP_REST_Server->dispatch(Object(WP_REST_Request))
#16 /somewp/wp-includes/rest-api.php(459): WP_REST_Server->serve_request('/contact-form-7...')
#17 /somewp/wp-includes/class-wp-hook.php(324): rest_api_loaded(Object(WP))
#18 /somewp/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#19 /somewp/wp-includes/plugin.php(565): WP_Hook->do_action(Array)
#20 /somewp/wp-includes/class-wp.php(418): do_action_ref_array('parse_request', Array)
#21 /somewp/wp-includes/class-wp.php(818): WP->parse_request('')
#22 /somewp/wp-includes/functions.php(1342): WP->main('')
#23 /somewp/wp-blog-header.php(16): wp()
#24 /somewp/index.php(17): require('/Users/ykawato/...')
#25 {main}
  thrown in /somewp/wp-content/plugins/contact-form-7-to-database-extension/CF7DBPlugin.php on line 855

というわけで、CF7DBPlugin.php のline 855

$value = is_array($value) ? implode($value, ', ') : $value;

とい$value = is_array($value) ? implode(', ', $value) : $value;

と修正。エラー解消。

この記事を書いた人