WPAdverts - How to limit form submission 10 per month

I currently use wpadverts plugin and wants to limit the submission to 10 submit / month.

How can I do that?

I think I need to make a new row like "form_submissions" in "wp_usermeta" and store every time when the user submitted the form and make a cron task to delete the row value after a month.

And I need to query the row value on the form submit page like this:

$result = mysqli_query($connect, "SELECT COUNT(*) AS `form_submission` FROM wp_usermeta WHERE user_id = $user_id");

    $row = mysqli_fetch_assoc($result);

    if($row['form_submission']  10) {
        // can't submit the form because you already have 10 post
    } else {
        // you can submit the form
    }

Or I'm totally lost? Sorry for my bad english.

Topic limit forms Wordpress

Category Web


You can do it using get_user_meta and update_user_meta:

$value = get_user_meta($user_id, 'form_submission', true); 
if (!$value) {$value = 1;} else {$value = $value + 1;}
if ($value < 11) {
    update_user_meta($user_id, 'form_submission', $value);
} else {
    // too many form submissions
}

You could also expand on this to store the submission month too if you don't want to use a cron job.

$month = get_user_meta($user_id, 'submission_month', true);
$value = get_user_meta($user_id, 'form_submission', true); 

if ($month && ($month != date('m',time())) ) {
    update_user_meta($user_id, 'submission_month', date('m', time());
    $newmonth = true;
} else {$newmonth = false;}
if (!$value || $newmonth) {$value = 1;} else {$value = $value + 1;}
if ($value < 11) {
    update_user_meta($user_id, 'form_submission', $value);
} else {
    // too many form submissions
}

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.