我正在编写一个代码,每次在自定义帖子类型上编辑帖子时都可以收到通知。
它工作正常,但ACF的转发器字段没有在电子邮件中呈现其子字段。
我想知道我做错了什么。电子邮件附带帖子中的确切行数,只显示字段。
其他一切似乎都运转良好。
function send_mails_on_update( $new_status, $old_status, $post )
{
if ( $new_status != $old_status or 'form_caravanas' !== get_post_type( $post ) )
return 'text/html';
$subscribers = get_users( array ( 'role' => 'administrator' ) );
$emails = array ();
foreach ( $subscribers as $subscriber )
$emails[] = $subscriber->user_email;
$nome = get_field('nome', $post);
$sobrenome = get_field('sobrenome', $post);
$ddd_celular = get_field('ddd_celular', $post);
$email = get_field('email', $post);
$nome_da_igreja = get_field('nome_da_igreja', $post);
$tipo_de_transporte = get_field('tipo_de_transporte', $post);
$cidade_e_estado_de_origem = get_field('cidade_e_estado_de_origem', $post);
$repeater = get_field('participantes', $post);
$participantes = '';
if( have_rows('participantes', $post) ):
while( have_rows('participantes', $post) ): the_row();
$nome_participante = the_sub_field('nome', $post);
$sobrenome_participante = the_sub_field('sobrenome', $post);
$ddd_celular_participante = the_sub_field('telefone', $post);
$email_participante = the_sub_field('email', $post);
$participantes.= sprintf( '<ul>
<li>Nome: ' . $nome_participante . '</li>
<li>Sobrenome: ' . $sobrenome_participante . '</li>
<li>Celular: ' . $ddd_celular_participante . '</li>
<li>Email: ' . $email_participante . '</li>
</ul>' ); endwhile; endif;
$participantes.= '';
$body = sprintf( '<html><head><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"></head><body>
<div class="container"><p><h3>Responsável</h3></p>
<p><strong>Nome:</strong> ' . $nome . '<br>
<strong>Sobrenome:</strong> ' . $sobrenome . '<br>
<strong>DDD + Celular:</strong> ' . $ddd_celular . '<br>
<strong>Email:</strong> ' . $email . '<br>
<strong>Nome da Igreja:</strong> ' . $nome_da_igreja . '<br>
<strong>Tipo de Transporte:</strong> ' . $tipo_de_transporte . '<br>
<strong>Cidade e Estado de Origem:</strong> ' . $cidade_e_estado_de_origem . '<br>
</p>
<p><h3>Participantes</h3></p>
<p>' . $participantes . '</p>
</div></body></html>' );
wp_mail( $emails, 'A caravana "' . get_the_title( $post ) . '" foi atualizada!', $body );
}
答案 0 :(得分:1)
首先,确保participantes
是转发器的名称。然后,删除每个$post
中的the_sub_field()
变量。
更改
$nome_participante = the_sub_field('nome', $post);
$sobrenome_participante = the_sub_field('sobrenome', $post);
$ddd_celular_participante = the_sub_field('telefone', $post);
$email_participante = the_sub_field('email', $post);
要
$nome_participante = the_sub_field('nome');
$sobrenome_participante = the_sub_field('sobrenome');
$ddd_celular_participante = the_sub_field('telefone');
$email_participante = the_sub_field('email');
您已经提到了要获取的转发器的值(并且您在转发器中处于循环中),因此您不需要再次在子字段上插入它。
此外,您可能需要使用get_sub_field()
而不是the_sub_field()
。不同之处在于the_sub_field()
回应了值,而get_sub_field()
没有。