連絡フォーム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; ?>
この '$ sumregistrations ="。do_shortcode( '[cfdb-count form = "regフォーム"]')から構文解析エラーが発生するはずです。 ";'内側の二重引用符をエスケープする必要があります。 '$ sumregistrations = "。do_shortcode( '[cfdb-count form = \" reg形式\ "]')。"; 'それを試してください。 –
@ Fred-ii-あなたの答えをありがとう。私はそれを試みたが、うまくいかない。 – Marcus