我为 WordPress 网站构建了简单的评论媒体系统。我正在限制通过 jQuery 上传的数量,当用户达到限制时,按钮将状态更改为禁用。假设 4 张图像是限制。
我创建了名为wp_review_media
并使用钩子插入数据的自定义表id
, post_id
, user_id
, image_name
,status
目前系统不会检查用户是否已经发布了数量有限的图片,并且每次访问都允许再次添加图片。现在在这里我想限制并计算每次用户单击add more
按钮时剩余多少上传限制。第一次用户可以使用当前的 jQuery 限制,因为该用户的数据库中没有记录。但是一旦他提交了表单,它就应该检查用户过去上传了多少张图片。
我已经做了所有事情,但坚持使用这个计数系统来检查数据库。这是我写的所有代码。
上传表格:
<form id="file-upload" action="" method="POST" enctype="multipart/form-data">
<div id="image-uploader-box" class="group">
<div id="forms" class="add-photo-fields">
<input type="button" id="add-photo-button" class="add-photo-button" value="Add Photo"/>
<input type="submit" value="Upload" />
</div>
</div>
</form>
WP 本地化脚本:
if(!is_admin()){
$photo_num = ($rm_options['max_image_count'] - 1); // Here you fetch the option data.
// Enqueue your script
wp_enqueue_script( 'rm-javascript', RM_URL.'js/rm-scripts.js', array('jquery'), 1, true );
// Set the data you want to pass to your script here
$data = array( 'photo_button_cnt' => $photo_num );
// Localize the script, the 'photo_button_cnt' value will now be accessible as a property in the global 'add_photo_button' object.
wp_localize_script( 'rm-javascript', 'add_photo_button', $data );
}
jQuery代码:
jQuery(document).ready(function(){
$cnt = 0;
jQuery('#add-photo-button').click(function(){
if($cnt == add_photo_button.photo_button_cnt ){
jQuery('#add-photo-button').prop('disabled', true);
jQuery('#add-photo-button').addClass('disabled');
}
$cnt++;
var current_count = jQuery('input[type="file"]').length;
//var next_count = current_count + 1;
jQuery('#file-upload').prepend('<p><input type="file" name="photo[]" /></p>');
});
});
图像计数方法:
public function user_image_count()
{
global $wpdb, $post, $current_user;
get_currentuserinfo();
$image_count = $wpdb->get_var("SELECT COUNT(user_id) AS total_images FROM {$wpdb->prefix}review_media WHERE post_id=$post->ID AND user_id=$current_user->ID GROUP BY post_id");
return $image_count;
}
我希望这将是我正在寻找的帮助的足够信息。如果您需要任何进一步的信息,请告诉我。
万亿谢谢:)