2017-03-05 14 views
1

admin-post.phpで投稿データを送信するカスタムフォームのページがあります。これは数日前にうまく動作するために使用されましたが、現在はその機能を起動していないようです。ここにコードがあります。 私は同じサイトにいくつかの他の同様のフォームを持っていますが、それらのすべてが動作を停止しています。私のfunctions.phpでWordPressのカスタムフォームの投稿admin-post.php経由での作業が中止されました

<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="POST"> 
    <input type="hidden" name="action" value="create_user"> 
    <?php wp_nonce_field('create_user'); ?> 
    <input type="text" class="form-control" name="first_name" placeholder="First Name" required/> 
    <input type="text" class="form-control" name="last_name" placeholder="Last Name" required/> 
</form> 

私は何かをエコーし​​、スクリプトを実行死ん試してみました

function create_user() { 
    $retrieved_nonce = $_POST['_wpnonce']; 
    if (!wp_verify_nonce($retrieved_nonce, 'create_user')){ 
     $status = 'failed'; 
    }else{ 

     // My Code goes here 
    } 
} 
add_action('admin_post_create_user', 'estudy_create_user'); 

これは単なる機能がトリガされているか否かをチェックする必要がありますが、あまりにも動作していません。

右方向へのすべてのヘルプはまあ、私は管理者-post.phpが(明らかにされている必要があります)管理者側のフォームのために使用されていることが分かったいくつかの掘削後に:)

+0

admin_postはログインしているユーザーにのみ動作します。このガイドに従ってください:https://www.sitepoint.com/handling-post-requests-the-wordpressway/ –

+0

@TomBrouckeまあ、私はログインしており、カスタムロールが割り当てられています。これは、この役割でうまく動作していました。 –

答えて

0

素晴らしいことです。私はフロントエンドのフォームで使っていましたが。フロントエンドフォームの

溶液代わり管理-post.php使用管理-ajax.phpの、非常に類似しています。次にadmin_post_*フックをwp_ajax_*フックに交換します。フロントエンドのゲストユーザはwp_ajax_nopriv_*を使用してください。

関連する問題