所以,基本上我有一个用户可以打印停车验证票的页面,但是每天只允许他们两次。
有什么方法可以在按钮"打印"单击以将其记录在DB中,然后如果计数器是> 2在最后一天它禁用该页面并返回一条消息?
答案 0 :(得分:1)
如果您向我们提供有关如何实施此问题的详细信息,我们可以提供更多帮助。
我确定你需要将它作为插件来创建并在安装时创建一个额外的表。 WP Codex https://codex.wordpress.org/Creating_Tables_with_Plugins
详细解释了这一点然后我创建一个函数,在该日志表上添加一个新条目,其中包含用户ID和日期AND,检查给定ID和日期的行数。这是wpdb类更新表的WP Codex页面:https://codex.wordpress.org/Class_Reference/wpdb
我从我的custom.php文件中调用它如果计数是> 2,我会使用不同的渲染顺序。也许将观点分成两部分并将其包括在内以使其更具可持续性。
<强>编辑强>
示例:
创建激活表:
function myPlugin_install() {
global $wpdb;
$tbl = $wpdb->prefix . 'myPlugin_log'; // Or anything you want
$sql = "CREATE TABLE $tbl ......" // Define your table structure
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql ); // Use the upgrade API to create the table
}
register_activation_hook( __FILE__ , 'myPlugin_install' );
如何插入行:
function logNewEntry() {
global $wpdb;
$tbl = $wpdb->prefix . 'myPlugin_log';
$userID = get_current_user_id();
$wpdb->insert(
$tbl,
// if you defined 'user' and 'time' as the fields to hold this info
array( 'user'=>$userID, 'time'=>current_time( 'mysql' ) )
);
}
答案 1 :(得分:0)
所以我想出来了,无需编写插件或任何东西。我刚用这个按钮发了POST,所以它也是触发器,这里是实际的代码(假设你已经有数据库连接,并且你创建了表,它就是在这个帖子类型调用的模板文件中) :
//start checking the DB
$bigBang = strtotime('-1 day');
$guyToKill = $username;
$fireStuff = "Select count(*) as c from wp_posjete_parking where thisGuy='$guyToKill' and thisDate>'$bigBang'";
$resultGotBack = @mysql_query($fireStuff);
$final = mysql_fetch_assoc($resultGotBack);
//kill old entries
$doomsDay = strtotime("-2 days");
mysql_query('delete from WP_TABLE_NAME where thisDate<$doomsDay');
//condition
if ($final['c'] > 2){
die ('<p style="color:red;font-weight:900;">Daily quata exceeded</p>'); //kill it
} else {
//your stuff here
echo "<p>You have done this " .$red['c']. " out of 2 times allowed.</p>";
}
//trigger
<form method="post" action="">
<ingput name="triggerSomeStuff" value="Trigger" />
</form>
<?php if (isset($_POST['trigger'])) {
$thisGuy = $username; //username got from WP
$thisDate = time();
$wpdb->insert('WP_TABLE_NAME',array( 'thisGuy'=>$thisGuy, thisDate'=>$thisDate),
array('%s', '%s')
);}
?>