// Enregistre la date de connexion de l’utilisateur function enregistrer_derniere_connexion($user_login, $user) { // Met à jour la date de la dernière connexion $last_login = current_time(‘mysql’); update_user_meta($user->ID, ‘last_login’, $last_login); // Debug: Vérifie si la date est bien enregistrée if (false ===…Continue reading
// 🔒 Block ?author=1 user enumeration attempts add_action(‘init’, function () { if (!is_admin() && isset($_GET[‘author’])) { wp_redirect(home_url(), 301); exit; } }); // 🛡️ Disable REST API user exposure add_filter(‘rest_endpoints’, function ($endpoints) { if (isset($endpoints[‘/wp/v2/users’])) { unset($endpoints[‘/wp/v2/users’]); } return $endpoints; });Continue reading
function custom_hide_shipping_when_free_shipping_is_available( $rates, $package ) { $free_shipping_exists = false; $local_pickup_exists = false; // Check if Free Shipping and/or Local Pickup exist foreach ( $rates as $rate_key => $rate ) { if ( ‘free_shipping’ === $rate->get_method_id() ) { $free_shipping_exists = true;…Continue reading
// Est. Reading Time $reading_speed = 200; // 200 words per minute $content = get_post_field( ‘post_content’, get_the_id() ); $word_count = str_word_count( strip_tags( $content ) ); $reading_time = ceil( $word_count / $reading_speed ); function post_read_time_shortcode($atts) { echo ‘ Estimated reading time:…Continue reading
// Add an Edit Post Link to Archives edit_post_link( __( ‘{Edit}’ ) ); // Add page slug to body class for better styling. function wpcode_snippet_add_slug_body_class( $classes ) { global $post; if ( isset( $post ) ) { $classes[] = $post->post_type…Continue reading
add_filter( ‘user_can_richedit’, ‘__return_false’, 50 );Continue reading
// Display regular price excluding tax for specific user role add_filter(‘woocommerce_get_price_html’, ‘custom_display_regular_price_ex_tax_for_role’, 100, 2); function custom_display_regular_price_ex_tax_for_role($price_html, $product) { // Only run on frontend and for logged-in users if (is_admin() || !is_user_logged_in()) return $price_html; // Get current user and their roles…Continue reading
/* WCV – Show and save product brand taxonomy on the product edit form */ add_action( ‘wcv_after_product_details’, ‘wcv_product_brand_select2’ ); /** * Add the Brands taxonomy to the vendor product edit form. * * @param int $object_id The post ID. */…Continue reading
function typography_enqueue_styles() { // Enqueue Typeboost.css from Cloudflare CDN wp_enqueue_style(‘typeboost-css’, ‘https://cdnjs.cloudflare.com/ajax/libs/typeboost/1.0.0/typeboost.css’, array(), ‘1.0.0’); // Enqueue webfontloader.js from Cloudflare CDN wp_enqueue_script(‘webfontloader’, ‘https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js’, array(), ‘1.6.28’, true); } add_action(‘wp_enqueue_scripts’, ‘typography_enqueue_styles’);Continue reading