2017-02-07 7 views
0

連絡フォーム7に基づいて、投稿件数が600に達したときに非表示にしたい登録フォームがあります。連絡フォームデータベース(CFDB )に送信されたデータを保存することができます。送信の数を出力するためのショートコードを生成することができます(以下、「cfdb-count」と呼ばれます)。機能条件が満たされている場合はコンテンツを非表示にする

私はWordpressを使用しています。

これは私が試したものですが、それは働いていない:

<?php 
$sumregistrations = " . do_shortcode('[cfdb-count form="The reg form"]') . "; 
if ($sumregistrations > 600){ 
      // Hide the form 
      }else { 
      // Show the form 
      } 
?> 

編集:ここでは、この問題のための実用的なソリューションです:

<?php require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CFDBFormIterator.php'); 
$exp = new CFDBFormIterator(); 
$exp->export('NAME OF THE FORM', array('show' => 'submit_time', 'trans' => 'CountField(submit_time)')); 
$count = 0; 
while ($row = $exp->nextRow()) { 
    $count = $row['submit_time']; 
} 
if ($count > 600): ?> 
    //Content to show if number of submissions are greater than 600. 
<?php else : ?> 
    //Content to show if number of submissions are less than 600. 
    //For example, show the form <?php echo do_shortcode('[contact-form-7 id="112" title="NAME OF THE FORM"]'); ?> 
<?php endif; ?> 
+0

この '$ sumregistrations ="。do_shortcode( '[cfdb-count form = "regフォーム"]')から構文解析エラーが発生するはずです。 ";'内側の二重引用符をエスケープする必要があります。 '$ sumregistrations = "。do_shortcode( '[cfdb-count form = \" reg形式\ "]')。"; 'それを試してください。 –

+0

@ Fred-ii-あなたの答えをありがとう。私はそれを試みたが、うまくいかない。 – Marcus

答えて

0
$sumregistrations = do_shortcode('[cfdb-count form="The reg form"]'); 

あなたは奇妙なを作成しましたあなたが本当に必要がないときに文字列を連結しようとします。そのショートコードが数字を返す場合は、何も追加する必要はありません。

EDIT:

repository for this pluginを熟読した後、このショートはHTMLに包まれた文字列を出力します。したがって、常にfalseを返すので、600との比較には使用できません。 dbテーブルから直接カウント値を取得する必要があります。

+0

私はあなたが上で示唆したことを試しました。私はまた、@ Fred-iiの提案と共に運が無ければそれを試みました。私は今、このコードをテストして動作するかどうかを確認していますが、これでもうまくいきません...このコードのエラーの原因は何ですか? '<?php $ sumregistrations = 3; if($ sumregistrations> 3){ フォームを非表示にする elseif { フォームを表示 } ; ?> ' – Marcus

+0

あなたのエラーは何ですか?何をしている/していないのですか?より具体的にする必要があります... – Spartacus

+0

上記の行の後にこれを行います: 'var_dump($ sumregistrations);'ここに出力します – Spartacus

関連する問題