1

我为 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;        
}

我希望这将是我正在寻找的帮助的足够信息。如果您需要任何进一步的信息,请告诉我。

万亿谢谢:)

4

0 回答 0