我尝试使用wp_mail发送电子邮件,然后,如果邮件成功发送,则将用户重定向到另一个页面(或者,如果不成功,则重定向到错误页面)。
我的代码如下所示。电子邮件实际上已发送,因此wp_mail正在运行,但我无法让重定向工作。
<?php
/* Template Name: Redirect Template */
?>
<?php
$to = "info@some-domain.com";
$subject = 'This is a test.';
$message = 'This is a test of the wp_mail function.';
$headers = '';
$sent_message = wp_mail( $to, $subject, $message, $headers);
if ($sent_message) {
$url_1 = "http://www.some-url.com";
wp_redirect($url_1);
exit();
} else {
$url_2 = "http://www.some-other_url.com";
wp_redirect($url_2);
exit();
}
?>
<?php get_header(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; // end of the loop. ?>
<?php get_footer(); ?>
答案 0 :(得分:2)
您需要摆脱关闭和打开PHP标记之间的空白区域。因为你有这个空间,所以WordPress在重定向运行之前启动输出(这是不允许的)。删除文件顶部的以下内容:
?>
<?php
以便文件顶部变为:
<?php
/* Template Name: Redirect Template */
$to = "info@some-domain.com";