【发布时间】:2020-03-21 16:51:44
【问题描述】:
我正在尝试从 Ninja Forms 提交中获取一个值,然后根据已提交的值(它是隐藏字段中的附件 ID)操纵成功消息操作以使用 WP 函数。
但是,成功消息操作在电子邮件操作之前触发,这意味着我尝试设置的包含该值的变量是在成功消息更改发生之后设置的。
我需要颠倒这两个动作的顺序,以便在成功消息动作之前触发电子邮件动作。
有人知道怎么做吗?
function sg_download_nf_success_message($action_settings, $form_id, $action_id, $form_settings) {
if(isset($action_settings['email_message'])) {
$doc = new DOMDocument();
$doc->loadHTML($action_settings['email_message']);
$rows = $doc->getElementsbyTagName('td');
$count = 0;
foreach($rows as $row) {
if($count == 15) {
$download_id = $row->nodeValue;
}
$count++;
}
}
if(isset($action_settings['success_msg'])) {
global $download_id;
$action_settings['success_msg'] = str_replace(
'[download_link]',
'<a href="'.wp_get_attachment_url($download_id).'" class="btn btn-outline-light">Download your item</a>',
$action_settings['success_msg']
);
}
return $action_settings;
}
add_filter('ninja_forms_run_action_settings', 'sg_download_nf_success_message', 10, 4);
【问题讨论】:
标签: php wordpress ninja-forms