$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>errors - Cannot modify header information - headers already sent during plugin activation|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

errors - Cannot modify header information - headers already sent during plugin activation

matteradmin6PV0评论

I am getting this error

PHP Warning: Cannot modify header information - headers already sent by (output started at /home/zk2ba8xn663w/public_html/wp-includes/formatting.php:5100) in /home/zk2ba8xn663w/public_html/wp-includes/pluggable.php on line 1219

The error message only shows up if i am activating from TGM plugin actiavtion page, ... if i first install through tgm and then go to actual plugin activation page redirect works with out any problem.

this is the redirect i am using

function activation_redirect( $plugin ) {
if( $plugin == plugin_basename( FILE ) ) {
exit( wp_redirect( admin_url( 'admin.php?page=general-settings' ) ) );
}
}
add_action( 'activated_plugin', 'activation_redirect' );

I am getting this error

PHP Warning: Cannot modify header information - headers already sent by (output started at /home/zk2ba8xn663w/public_html/wp-includes/formatting.php:5100) in /home/zk2ba8xn663w/public_html/wp-includes/pluggable.php on line 1219

The error message only shows up if i am activating from TGM plugin actiavtion page, ... if i first install through tgm and then go to actual plugin activation page redirect works with out any problem.

this is the redirect i am using

function activation_redirect( $plugin ) {
if( $plugin == plugin_basename( FILE ) ) {
exit( wp_redirect( admin_url( 'admin.php?page=general-settings' ) ) );
}
}
add_action( 'activated_plugin', 'activation_redirect' );
Share Improve this question asked Nov 18, 2018 at 12:00 user145078user145078 10
  • That would indicate you have something that is throwing an error during the activation processing. It's difficult to track down without additional tools to gain more info on the actual error (which you'll need to know how to fix it). Consider using the "Debug Bar" and "Debug Bar Plugin Activation" plugins to get the actual PHP errors generated during plugin activation. Both are on wp – butlerblog Commented Nov 18, 2018 at 12:58
  • @butlerblog can the code i posted be the cause? if i remove that error goes but that does not make sense as there is no redirect there is no error :/. Let me test with plugin you have mentioned – user145078 Commented Nov 18, 2018 at 13:01
  • 1 It probably is - although you wouldn't know for certain if you don't use something to get the actual PHP error (which is why I recommended the two tools mentioned - they are extremely helpful in plugin development). I would say that your exit() needs to be separate and after the wp_redirect() call. That's your likely problem. – butlerblog Commented Nov 18, 2018 at 13:04
  • And... I'd have to look for sure, but activated_plugin may be too late to actually run a wp_redirect() without a header error. – butlerblog Commented Nov 18, 2018 at 13:05
  • 1 if the problem is onlt with TGM you should be looking at that, perhaps it also hooks activated_plugin? if so you could try adding a priority of 9 so as to run earlier... ie. add_action( 'activated_plugin', 'activation_redirect', 9 ); – majick Commented Nov 19, 2018 at 10:53
 |  Show 5 more comments

1 Answer 1

Reset to default 0

Since the standard redirection works, I figured the conflict must be with TGM plugin activation already hooking to activated_plugin and producing output and thus preventing the redirect...

Therefore the solution was to ensure that the plugin activation function hook was added to an earlier priority than the (silent) default of 10 most probably used by TGM:

add_action( 'activated_plugin', 'activation_redirect', 9 );
Post a comment

comment list (0)

  1. No comments so far