Contact Form 7 作者が作成した Contact Form 7 のデータをデータベースに保存するプラグイン( Flamingo ) があるので、従来あったプラグインはほとんど更新されなくなりましたね。
Flamingo は、元々は Contact Form 7 (単体では送信されたメッセージを保存する機能を持ちません) のために作成されたメッセージ保存プラグインです。
WordPressプラグインで検索して数ページみた感じでは、規定回数のみ表示する機能を持ったフォームはなさそうです。
Contact Form 7 + Flamingo を組み合わせて使うのであれば、Flamingo の場合、フォーム設置 URL を基準にしてデータを保存しているいるので、フォームページのスラッグ( slug ) を利用して、データ件数をカウントすることはできそうです。
たとえば、
function my_contactfrom7_count_178841( $formid = '' ) {
$args = array(
'post_type' => 'flamingo_inbound',
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC',
'post_status' => 'publish'
);
if( isset($formid) ) {
$args['meta_query'] = array( array(
'key' => '_meta',
'value' => $formid,
'compare' => 'LIKE'
) );
}
$forms = get_posts( $args );
if(isset($forms))
return count($forms);
}
のような関数を作成して、my_contactfrom7_count_178841( フォームを設置したページのslug )
のような感じで関数を呼び出すと フォームを設置したページのslug
のページから投稿されて保存されている件数が取得できます。( LIKE 検索しているので、slug が連番のフォームがあると誤カウントする場合があります。その場合は、 URL を利用するなど適宜対応してください。 )
(例) http://example.com/test-form/ に設置したフォームからの投稿件数をカウントするのであれば、 my_contactfrom7_count_178841('test-form')
と呼び出す。
テンプレートファイルのフォームを表示する部分で、phpで 条件分岐させるようにしてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/11 16:37
2019/03/11 22:50 編集
2019/03/12 03:29
2019/03/12 03:44