以自定义形式使用ACF get_field

时间:2018-08-24 14:38:54

标签: php wordpress advanced-custom-fields

我正在使用ACF选项保存联系表的电子邮件地址。使用Wordpress多站点,我可以通过选项面板设置希望表单访问的对象。表单正在发送自动回复器,但未提交到保存的电子邮件地址。

<?php
$contact_form_email = get_field('contact_form_email','options');
$cyber_to = array($contact_form_email);
# CyberMark Subject Line
$cyber_subject  = $s." Form Submission";

# Headers of email
$cyber_headers  = "From: " . strip_tags('noreply@email.com') . "\r\n";
$cyber_headers .= "MIME-Version: 1.0" . "\r\n";
$cyber_headers .= "Content-Type: text/html; charset=ISO-8859-1" . "\r\n";

# CyberMark message
$cyber_msg = '<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Name:</td>
<td style="margin-left: 5px;">'.$n.'</td>
</tr>
<tr>
<td>Email:</td>
<td style="margin-left: 5px;">'.$e.'</td>
</tr>
<tr>
<td>Phone:</td>
<td style="margin-left: 5px;">'.$t.'</td>
</tr>
<tr>
<td>Message:</td>
<td style="margin-left: 5px;">'.$m.'</td>
</tr>
</table>';

# Loop through all email recipients
foreach($cyber_to as $cyber_email)
{
    mail($cyber_email,$cyber_subject,$cyber_msg,$cyber_headers);
}

?>

1 个答案:

答案 0 :(得分:1)

我从您的问题中猜测,处理表单的PHP文件仅位于WP文件夹中,而实际上并没有在wordpress“环境”中运行。

您实际上需要像这样在文件内部加载WP:

require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

这将加载供您在该文件中使用的所有wordpress,包括get_field()。 ;)

相关问题