为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 ACF 表单中添加多个提交按钮?

如何在 ACF 表单中添加多个提交按钮?

PHP
三国纷争 2022-10-14 16:28:42
我在 WordPress 网站的前端使用 ACF 表单。它用于在 WordPress 中创建自定义帖子。我需要在这个 ACF 表单中添加两个提交按钮。当我点击第一个按钮时,它应该创建一个新帖子并且帖子状态应该是发布,当我点击另一个按钮时,它应该创建一个新帖子并且帖子状态应该是草稿。我下面的代码将创建一个状态为已发布的帖子。我怎样才能做到这一点?<?phpacf_form(array('post_id'       => 'new_post','field_groups' => array(258),'new_post'      => array('post_type'     => 'property',),'post_title' => true,'post_title_label'  => 'Community Name','submit_value'  => 'Submit for Review')); ?>
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

可以使用隐藏字段和一些 jQuery 来实现这一点。


步骤 1:您需要添加隐藏字段并将默认值设置为 1。


<?php


acf_form_head();

acf_form(array(

'post_id' => 'new_post',

'field_groups' => array(258),

'new_post' => array(

'post_type' => 'property',

),

'id' => 'form_draft',

'html_after_fields' => '<input type="hidden" id="hiddenId" name="acf[current_step]" value="1"/>',

'return' => home_url('property-thank-you'),

'post_title' => true,

'post_title_label' => 'Community Name',

'submit_value' => 'Publish'

)

);

?>

第2步:


在表单附近使用以下代码,然后使用 jQuery 将此字段附加到表单。


<input type="submit" id="draft_btn" class="acf-button2 button button-primary button-large" name="draft_btn" value="Save as Draft" onclick="click_ignore();">


<script type="text/javascript">

jQuery(document).ready(function(){

jQuery("#draft_btn").detach().appendTo('.acf-form-submit');

});

</script>

第 3 步:单击“草稿”按钮时,将其值覆盖为 2。


<script type="text/javascript">

function click_ignore(e) {

document.getElementById('hiddenId').value = 2;

return false;

}

</script>

第 4 步:在 fucntions.php 中添加以下代码,这将根据我们单击的按钮更改帖子状态。


<?php

function my_acf_save_post($post_id) {


$submitedStatus = $_POST['acf']['current_step'];

if ($submitedStatus == 1){

$value = 'pending';

}else if ($submitedStatus == 2){

$value = 'draft';

}


// Update current post

$my_post = array(

'ID' => $post_id,

'post_status' => $value,

);

remove_action('acf/save_post', 'my_acf_save_post', 20);


// Update the post into the database

wp_update_post($my_post);


// Add the action back

add_action('acf/save_post', 'my_acf_save_post', 20);

}


// run after ACF saves the $_POST['acf'] data

add_action('acf/save_post', 'my_acf_save_post', 20);

?>

我们在单个 ACF 表单中添加了“发布”和“另存为草稿”按钮。


查看完整回答
反对 回复 2022-10-14
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信