Reservation with points coast
-
Hi !
I use Events Manager. I would like to add a system of points for my users (code below). They have some points who’s given by the admin and can use them for book events on Events Manager.
I would like to define manually the point coast for each events. The point will be subtract for a booking or add for a refund.
May be someone could help ? I’m newbie with php
Thx<?php /* Plugin Name: Point Manager Description: Ce plugin permet de définir un nombre de points pour chaque utilisateur. Version: 1.0 Author: Kévin Mazan */ // Ajouter une colonne "Nombre de points" au tableau des utilisateurs add_filter('manage_users_columns', function($columns) { $columns['user_points'] = __('Nombre de points', 'text-domain'); return $columns; }); // Afficher le nombre de points dans la colonne "Nombre de points" add_filter('manage_users_custom_column', function($value, $column_name, $user_id) { if ($column_name === 'user_points') { $points = get_user_meta($user_id, 'user_points', true); return $points ? $points : 0; } return $value; }, 10, 3); // Fonction pour ajouter des points à un utilisateur function add_user_points($user_id, $points) { $current_points = get_user_points($user_id); $new_points = $current_points + $points; update_user_meta($user_id, 'user_points', $new_points); } // Fonction pour soustraire des points à un utilisateur function subtract_user_points($user_id, $points) { $current_points = get_user_points($user_id); $new_points = $current_points - $points; update_user_meta($user_id, 'user_points', $new_points); } // Fonction pour récupérer le nombre de points d'un utilisateur function get_user_points($user_id) { $points = get_user_meta($user_id, 'user_points', true); return empty($points) ? 0 : (int) $points; } // Ajouter un champ pour le nombre de points dans la page de profil de l'utilisateur add_action('show_user_profile', function($user) { $points = get_user_points($user->ID); ?> <h3>Points utilisateur</h3> <table class="form-table"> <tr> <th><label for="user_points">Points:</label></th> <td><input type="number" name="user_points" id="user_points" value="<?php echo $points; ?>" /></td> </tr> </table> <?php }); // Enregistrer le nombre de points modifié dans la base de données add_action('personal_options_update', function($user_id) { if (!current_user_can('edit_user', $user_id)) { return false; } if (isset($_POST['user_points'])) { $points = (int) $_POST['user_points']; update_user_meta($user_id, 'user_points', $points); } });
I have this code for the system of point.
Thx !
- The topic ‘Reservation with points coast’ is closed to new replies.