const IC_REGEXP_KATAKANA = “/\A[ア-ンガ-ボァ-ョヮッーヴ]+\z/”; const IC_REGEXP_POST_CODE_JP = “/\A\d{3}-?\d{4}\z/”; const IC_REGEXP_PHONE = “/\A\+?[1-9]\d{1,14}\z/”; add_filter(‘gform_field_validation’, ‘icFormValidation’, 10, 4); function icFormValidation($result, $value, $form, $field) { // カタカナのみの入力 if(preg_match(‘/\bkatakana\b/’, $field->cssClass) && !empty($value) && !preg_match(IC_REGEXP_KATAKANA, $value)) { $result[‘is_valid’] = false; $result[‘message’] = implode(‘ ‘, array_filter([$result[‘message’],…Continue reading
/* Plugin Name: MA Custom Fonts Description: Load custom fonts and inject to Gutenberg, Bricks, Oxygen Author: Matthias Altmann Project: Code Snippet MA Custom Fonts Version: 3.4.3 Plugin URI: https://www.altmann.de/en/blog-en/code-snippet-custom-fonts/ Description: en: https://www.altmann.de/en/blog-en/code-snippet-custom-fonts/ de: https://www.altmann.de/blog/code-snippet-eigene-schriftarten/ Copyright: © 2020-2025, Matthias Altmann…Continue reading
// Disable XML-RPC add_filter( ‘xmlrpc_enabled’, ‘__return_false’ ); // Block access to xmlrpc.php via .htaccess equivalent (Apache fallback) add_action( ‘init’, function () { if (strpos($_SERVER[‘REQUEST_URI’], ‘xmlrpc.php’) !== false) { wp_die( ‘Access denied.’ ); } }); // Remove pingback header add_filter( ‘wp_headers’,…Continue reading
// 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
/* Plugin Name: Daily Cleanup with Report Description: Deletes all posts, categories, and tags daily and emails a summary. Version: 1.4 */ function delete_all_posts_categories_tags_with_report() { global $wpdb; // 🕒 Track last cleanup execution time update_option( ‘last_run_cleanup’, current_time( ‘mysql’ ) );…Continue reading
add_action( ‘init’, function() { if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { $compat = \Automattic\WooCommerce\Utilities\FeaturesUtil::is_plugin_compatible( ‘custom_order_tables’, ‘ajax-search-for-woocommerce-premium/ajax-search-for-woocommerce.php’ ); add_action( ‘admin_notices’, function() use ( $compat ) { echo ‘ ‘; echo ‘📋 WooCommerce reconhece o FiboSearch como ‘ . ($compat ? ‘compatível…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_filter( ‘user_can_richedit’, ‘__return_false’, 50 );Continue reading