1
私は、次のコードを使用して(私はあなたのほとんどがそれに精通している願っています)新しい投稿を送信するためのフロントエンドのフォームを作成しています:acf_form()検証とフィードバック
$options = array(
'post_id' => 'new_post',
'new_post' => array(
'post_type' => 'post',
'post_status' => 'pending'
),
'html_before_fields' => $html_before_fields,
'html_after_fields' => $html_after_fields,
'uploader' => 'basic',
'submit_value' => __("Create", 'domain'),
'updated_message' => __("Your post was submitted successfully! Please wait for it to be approved.", 'domain'),
);
acf_form($options);
そして、ここでは、スニペットです私のfunctions.php;
function _action_ssd_acf_submit_post_pre_save($post_id) {
if(empty($_POST['acf'])) {
return;
}
if (!isset($_POST['acf_post_submit'])) { // this is a hidden input field in the form
return;
}
if () { // some more checks here
wp_mail(); //removed parameters for cleaner code, I send email to the admin
}
if(empty(get_user_meta(get_current_user_id(), 'this_user_can_submit', true))) {
exit;
return;
}
}
add_action('acf/pre_save_post', '_action_ssd_acf_submit_post_pre_save');
投稿はいつでも下書きとして保存されるため、保存を停止できますか?
また、投稿時にエラーがある場合はupdate_message
を変更する方法が見つからないようです。たとえば、ユーザーに必要なuser_meta
がない場合。
私の問題は、(検証エラーの場合)投稿の投稿をやめて、ページが更新された後にフロントエンドのメッセージフィードバックを送信できないということです。
私はここにコードを書いて間違っていました。投稿ステータス '' post_status '=>' post''は、上記に書かれていたはずのものです。私の問題は、投稿の投稿を中止して(検証エラーの場合)、ページが更新された後にフロントエンドのメッセージフィードバックを送信できないことです。 – Ziik