質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.77%

Wordpress ACF Pro にて作成した非ログインユーザ向けフォーム

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 805

namoo

score 10

 前提

Wordpressを使用し、フロントから一般ユーザに、
Advanced Custom Field Pro で作成した応募フォームを入力していただくページを作成しています。
今回問題が発生しているのは非ログイン時のみで、
ログイン中のユーザが該当のページを閲覧した場合は正常に動作いたします。

 発生している問題

ACF Proの機能である繰り返しフィールドを使用して、
タグの選択、新規追加をさせているのですが、
新規追加の際にadmin-ajax.phpから400 Bad Request が出てしまい、
新規追加モーダルがロード中のまま動かなくなってしまいます。

 該当のソースコード

      <div class="entry-form">
        <?php
          $post_now = get_page_by_title('ACFテンプレート名', OBJECT, 'acf-field-group');
          if (! is_wp_error($post_now)) {
            $acf_id = $post_now->ID;
          }

          acf_form(array(
            'post_id'      => 'new_post',
            'new_post'     => array(
                               'post_status' => 'pending'
                              ),
            'field_groups' => array($acf_id),
            'post_title'   => true,
            'return'       => home_url() . '/complete',
            'uploader'     => 'basic',
            'submit_value' => '投稿'
          ));
        ?>
      </div>

~~
#フッター部JS
  $('.entry-form-tag .acf-input').append('
   <div class="acf-actions -hover">
     <a href="#" class="acf-icon -plus acf-js-tooltip small" data-name="add" title="新規タグを追加"></a>
   </div>
 ');

 試したこと

/wp-admin/admin-ajax.php,
/wp-content/plugins/advanced-custom-fields-pro/includes/ajax/class-acf-ajax.php


等方々で非ログイン時に渡される引数等デバックをしてみたのですが、
非ログイン時に叩かれるべきajax-noprivのactionが存在しないようでした。

また、ACF側に下記を追加したりもしたのですが、その場合は空のJsonが戻りました。

#/wp-content/plugins/advanced-custom-fields-pro/includes/ajax/class-acf-ajax.php

add_action( "wp_ajax_nopriv_acf/fields/taxonomy/add_term", array($this, 'request') );

#戻り値
{"success":true,"data":false}

 補足情報(FW/ツールのバージョンなど)

WordPress 4.9.8
Advanced Custom Fields PRO 5.7.7
PHP 5.3.3

Web上を徘徊して情報を探したりWordpressのコアファイルを眺めたりデバックしたりと、
連日暗中模索している状態です・・。
もし対応策をご存知の方がいらっしゃいましたら、お力をお貸しいただけませんでしょうか・・?
情報の不備がありましたらご教示ください!

どうか、よろしくお願いいたします。

 質問への回答

サーバのコンパネからWebのエラーログを見ましたが、エラーは排出されておりませんでした・・。 
ajax通信は正常で、wpから明示的にだされた400エラーがあるだけなので、
サーバーへログは飛んでないのだと思いますが、
アクセスログの行数までもが極端に少なかったため、すべてが参照できているか少し不安です・・。 

ブラウザのログは、ajax実行時にadmin-ajax.phpが400BadRequestで返った旨だけ表示されます。 

jquery.js?ver=1.12.4:4 POST https://domain/wp/wp-admin/admin-ajax.php 400 (Bad Request)

Webブラウザのキャッシュについて、
キャッシュ削除しての表示、新規端末のブラウザによる表示どちらも試しましたが、
状況は変わらずでした・・。
通常ACFProの繰り返しフィールドは非ログインユーザに対してこういった不具合が起こるものなのでしょうか・・

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • CHERRY

    2018/11/28 23:35

    Webサーバーのログには、どのようなエラーが出ていますか? Webブラウザの開発者ツールのコンソールには何かメッセージは出ていますか?

    キャンセル

  • namoo

    2018/11/28 23:49 編集

    サーバのコンパネからWebのエラーログを見ましたが、エラーは排出されておりませんでした・・。

    ajax通信は正常で、wpから明示的にだされた400エラーがあるだけなので、
    サーバーへログは飛んでないのだと思います。

    ブラウザのログは、ajax実行時にadmin-ajax.phpが400BadRequestで返った旨だけ表示されます。
    jquery.js?ver=1.12.4:4 POST https://domain/wp/wp-admin/admin-ajax.php 400 (Bad Request)

    キャンセル

  • CHERRY

    2018/11/29 09:48 編集

    サーバー側でエラーは出ていませんか...  Webブラウザのキャッシュをクリアしたら状況に変化はありますか?  もしくは、いままでアクセスしたことがない Web ブラウザでアクセスしてみるとか...

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る