어떻게 다중 ACF 형태로 전송 버튼을 추가하려면?

karthik_krish :

나는 워드 프레스 웹 사이트의 프런트 엔드에 ACF 양식을 사용하고 있습니다. 워드 프레스 사용자 정의 게시물을 작성하는 데 사용됩니다. 나는이 ACF 양식에 두 개의 제출 버튼을 추가해야합니다. 내가 첫 번째 버튼을 클릭하면, 그것은 새 게시물을 작성해야합니다 및 사후 상태를 게시해야하며, 나는 또 다른 버튼을 클릭하면, 그것은 새 게시물을 작성해야합니다 및 사후 상태가 초안이어야한다.

출판으로 내 아래 코드는 상태로 게시물을 작성합니다. 내가 어떻게 이것을 달성 할 수 있습니까?

<?php
acf_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'
)); 
?>
Muralitharan V :

숨겨진 필드와 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의 형태로 '초안으로 저장'과 '게시'버튼을 모두 추가했습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=26285&siteId=1