【问题标题】:PHP Mail Format with ACF Repeater field带有 ACF 转发器字段的 PHP 邮件格式
【发布时间】:2020-12-22 20:09:28
【问题描述】:

我正在开发一个模块,使用 ACF 中的一些自定义字段从 WordPress 帖子发送邮件。

我有一个像这样的初始结构:

        $to = $wpp_send_status_email;
        $subject = $wpp_send_status_subject;
        $body = "
        <html>
        <table border='0' cellpadding='0' cellspacing='0' style='background: #fff; max-width:670px;margin:40px auto;text-align:left;color:#000;border: 1.3px solid rgba(0, 0, 0, 0.05);-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;-webkit-box-shadow: 0px 5px 15px -10px rgba(0, 0, 0, 0.2); box-shadow: 0px 5px 15px -10px rgba(0, 0, 0, 0.2)'>

代码工作正常,但是当我必须使用带有 if 和 else 选项的转发器字段时,我没有成功。我原来的代码是:

<?php if(get_field('to-do')): ?>
  <tbody>
      <tr>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Tarefa</th>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Deadline</th>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Status</th>
      </tr>
    <?php while(has_sub_field('to-do')): ?>
      <tr style="border-top: 1px solid rgba(0, 0, 0, 0.05)">
      <td class="timeline-phase-activity ng-scope" style="text-align: left;vertical-align:middle;font-size:14px;width:60%;font-family:Arial,sans-serif;padding:10px 30px 10px 0"><span><?php the_sub_field('task-name'); ?></span></td>
      <td style="vertical-align:middle;text-align:left;padding-left: 24px;font-size:14px;font-family:Arial,sans-serif;padding:10px 0">
      <span style="padding-right:1.125rem"><?php the_sub_field('deadline'); ?></span>
      </td>
      <td style="text-align:left;vertical-align:middle;font-size:14px;font-family:Arial,sans-serif;;padding:10px 0"><span><?php the_sub_field('status'); ?></span>
      </td>
      </tr>
    <?php endwhile; ?>
  </tbody>
<?php endif; ?>

有谁知道我如何将它包含在 HTML 标记中?我的另一个字段位于“.get_field('conclusion', $post->ID).”结构上,但这不适用于 if 和 else。

【问题讨论】:

  • get_sub_field()have_rows()the_row() 上下文之外无法正常工作。无论如何,您的转发器字段是如何构成的?参考文档:advancedcustomfields.com/resources/get_sub_field
  • 嗨@Damocles,感谢您的回归。但我需要帮助才能在 PHP > Body > HTML 结构中完成这项工作。因为,显然,我必须使用“..”标签来使 PHP 工作。

标签: php wordpress advanced-custom-fields


【解决方案1】:

如果我没有正确回答您的问题,那么您正在寻找一种方法将此内容放入 $body 变量中。使用输出缓冲可以最好地实现这一点,如下所示:

  $to = $wpp_send_status_email;
  $subject = $wpp_send_status_subject;
  ob_start(); // start the output buffering
  if(get_field('to-do')): ?>
  <tbody>
      <tr>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Tarefa</th>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Deadline</th>
        <th style="font-family:Arial,sans-serif;text-align: left; vertical-align: middle; padding: 0 0 20px 0; font-size: 14px">Status</th>
      </tr>
    <?php while(has_sub_field('to-do')): ?>
      <tr style="border-top: 1px solid rgba(0, 0, 0, 0.05)">
      <td class="timeline-phase-activity ng-scope" style="text-align: left;vertical-align:middle;font-size:14px;width:60%;font-family:Arial,sans-serif;padding:10px 30px 10px 0"><span><?php the_sub_field('task-name'); ?></span></td>
      <td style="vertical-align:middle;text-align:left;padding-left: 24px;font-size:14px;font-family:Arial,sans-serif;padding:10px 0">
      <span style="padding-right:1.125rem"><?php the_sub_field('deadline'); ?></span>
      </td>
      <td style="text-align:left;vertical-align:middle;font-size:14px;font-family:Arial,sans-serif;;padding:10px 0"><span><?php the_sub_field('status'); ?></span>
      </td>
      </tr>
    <?php endwhile; ?>
  </tbody>
<?php
  endif;
  $body = ob_get_clean(); // retrieve the output buffer and save to $body

【讨论】:

    猜你喜欢
    • 2018-04-12
    • 2020-04-04
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2021-04-26
    • 2016-06-17
    • 2014-07-07
    相关资源
    最近更新 更多