BEAR - WooCommerce Bulk Editor and Products Manager Professional

Réglages supplémentaires (implicites)

Options cachées (depuis la v.2.0.6/1.0.6), créées par du code à placer dans le fichier functions.php du thème WordPress actuel, en raison de leur complexité de compréhension, de leur usage rare, d'exigences techniques ou pour plus de flexibilité :
  • Valeurs pour définir le nombre de produits par page. Via le hook 'woobe_set_per_page_values' : (version premium)
    add_filter('woobe_set_per_page_values', function($add) {
        return '10,30,100,150,200';
    });
    Faites attention aux valeurs élevées (surcharge mémoire) !
  • add_filter('woobe_set_per_page_value', function ($value) {
    	return 50;
    });
    Définit le nombre de produits dans le Editeur de produits (Products Editor), a la priorité la plus élevée
  • Exclure des onglets pour certains utilisateurs/rôles. Via le hook 'woobe_show_tabs' :
    add_filter('woobe_show_tabs', function ($show, $slug) {
        $rules = array('settings', 'meta', 'info');
        if (!current_user_can('administrator') AND in_array($slug, $rules)) {
            $show = false;
        }
     
        return $show;
    }, 99, 2);
  • Inclure les termes enfants dans les résultats du filtre. Par défaut, si vous filtrez sur un terme, seuls les produits ayant ce terme précis sont trouvés, et pas les autres produits même s'ils possèdent un terme enfant de ce terme parent sélectionné. Via le hook 'woobe_filter_include_children' :
    add_filter('woobe_filter_include_children', function($include, $tax) {
        $alow = ['product_cat', 'pa_color'];
     
        if (in_array($tax, $alow)) {
            $include = true;
        }
     
        return $include;
    }, 10, 2);
  • Contrôler la possibilité de modifier des champs selon l'utilisateur/le rôle. Via le hook 'woobe_user_can_edit' :
    add_filter('woobe_user_can_edit', function($is_forbidden, $field_key, $shop_manager_visibility_array) {
        $user = wp_get_current_user();
        //print_r($shop_manager_visibility_array);
        if (in_array('author', (array) $user->roles)) {
            if ($field_key == 'sku') {
                $is_forbidden = 1;
            }
        }
     
        return $is_forbidden;
    }, 10, 3);
  • Possibilité d'effectuer des opérations personnalisées sur la nouvelle valeur d'un champ avant sa mise à jour. Via le hook 'woobe_before_update_product_field' :
    add_filter('woobe_before_update_product_field', function($value, $product_id, $field_key) {
     
        //$condition= your code here
     
        //example
        if ($field_key === 'post_title' AND $condition) {
            $value .= " Some text";
        }
     
        return $value;
    }, 10, 3);
  • Le hook woobe_storage_type (depuis la v.2.0.8/1.0.8) aide dans les cas où des problèmes de transient sur le serveur empêchent le filtrage des produits de fonctionner ; il permet de définir le transient comme stockage de filtrage
    add_filter('woobe_storage_type', function($type) {
        return 'option';//option, transient
    });
    
     
  • Le hook 'woobe_product_statuses' - permet d'ajouter d'autres statuts de produits (depuis la v.2.0.8.1/1.0.8.1)
    add_filter('woobe_product_statuses', function($statuses) {
        $statuses['archive'] = 'Archive';
        return $statuses;
    });
    
  • Le hook 'woobe_users_args' permet de récupérer les utilisateurs par rôles personnalisés, par exemple 'vendors'. Par défaut, c'est 'authors' (depuis la v.2.0.9/1.0.9)
    add_filter('woobe_users_args', function ($args) {
        return array('fields' => array('ID', 'display_name'), 'who' => 'vendors');
    });
  • Le hook 'woobe_new_product_status' qui permet de définir le statut que les nouveaux produits créés par BEAR auront : (depuis la v.2.0.9/1.0.9)
    add_filter('woobe_new_product_status', function ($status) { return 'publish'; });
  • Le hook 'woobe_stock_quantity_dependency'. Si vous le mettez à FALSE, alors lors du changement de la quantité en stock vers une valeur positive, le champ 'manage_stock' ne sera plus modifié automatiquement. Par défaut, il est à TRUE.
    add_filter('woobe_stock_quantity_dependency', function ($status) {
        return false;
    });
  • Le hook 'woobe_bulkedit_taxonomies'. Utile lorsque la boutique compte des milliers de taxonomies, pour éviter un temps de chargement long dans l'onglet Modifier en bloc (Bulk Edit). Exemple, n'affichons pas les catégories de produits : (depuis la v.2.0.9/1.0.9)
    add_filter('woobe_bulkedit_taxonomies', function ($taxonomy_objects) {
    
        if (isset($taxonomy_objects['product_cat'])) {
            unset($taxonomy_objects['product_cat']);
        }
    
        return $taxonomy_objects;
    });
  • Le hook 'woobe_filter_taxonomies'. Utile lorsque la boutique compte des milliers de taxonomies, pour éviter un temps de chargement long dans l'onglet Filtres (Filters). Exemple, n'affichons pas les catégories de produits : (depuis la v.2.0.9/1.0.9)
    add_filter('woobe_filter_taxonomies', function ($taxonomy_objects) {
    
        if (isset($taxonomy_objects['product_cat'])) {
            unset($taxonomy_objects['product_cat']);
        }
    
        return $taxonomy_objects;
    });
     
  • Le hook 'woobe_wpml_sync_prices' permet de copier le même prix promo et prix normal pour toutes les langues WPML
    add_filter('woobe_wpml_sync_prices', function ($do) {
        return true;
    });
    
  • "weight", "length", "width", "height" - cela fonctionne désormais aussi pour les variations. Le hook (depuis la v.2.1.3) qui permet cela est : woobe_filter_consider_variation_dimensions, vrai (true) par défaut. Si vous renvoyez false, ces filtres ne tiendront pas compte des valeurs dans les options :
    add_filter('woobe_filter_consider_variation_dimensions', function ($do) {
        return false;
    });
  • Hook (depuis la v.2.1.3) woobe_new_variation_product_status - définit le statut par défaut de la variation de produit :
    add_filter('woobe_new_variation_product_status', function ($status) {
        return 'private';
    });
  • Le hook 'woobe_use_kses_for_page_field' - évite le problème "met à jour un caractère à la place du symbole" signalé par omc123 https://wordpress.org/support/topic/it-updates-in-stead-of-the-symbol-in-wordpress-editor/
  • Les hooks 'woobe_on_sale_from_set_day' et 'woobe_on_sale_to_set_day' proposés par krixxsw https://share.pluginus.net/image/i20230922153100.png permettent de régler quand la promotion commence/se termine dans la journée : false - 00:00:00, true - 23:59:59
  • Le hook 'woobe_settings_key_options' proposé par carlosdm https://pluginus.net/support/topic/same-configuration-for-all-users/ permet d'appliquer la même configuration à tous les utilisateurs
    add_filter('woobe_settings_key_options', function ($id) {
        return "for_all";
    });
  • Le hook 'woobe_wrap_field_val' proposé par Luigi Pulcini https://pluginus.net/support/topic/add-filter-to-wrap_field_val-method/ permet de personnaliser le contenu d'une colonne pour les champs personnalisés
  • Hook (depuis la v.2.1.4.6) 'woobe_export_cut_empty_variations' - permet d'exclure les variations de produits en rupture de stock
    add_filter('woobe_export_cut_empty_variations', function ($type) {
        return true;
    });
    
  • Hook (depuis la v.2.1.4.6) 'woobe_export_product_fields_answer' - pour la manipulation des données d'export
  • Fonctionnalité : vous pouvez désormais créer un fichier woobe.css dans le dossier de votre thème WordPress actuel pour personnaliser entièrement l'apparence du panneau d'administration de BEAR. Exemple :
    /* sticky position of chekbox, preview img, title */
    #advanced-table {
        overflow: auto;
    }
    
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=__checker], 
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=_thumbnail_id], 
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=post_title]
    {
        position: sticky;
        top: 0;
        left: 0;
        z-index: 1;
        background: #fff;
    }
    
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=__checker] {
        left: -1px;
    }
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=_thumbnail_id]{
        left:26px;
    }
    #advanced-table_wrapper .dataTables_scroll .scroll-wrapper .dataTables_scrollBody table tbody tr td[data-field=post_title]{
        left:90px;
    }
  • Comment générer des SKU séquentiels en masse
  • Le hook woobe_use_cache_flush - avant que le tableau des produits ne soit dessiné, BEAR vide le cache d'objets pour que les lignes affichent les données actuelles plutôt que des valeurs mises en cache avant votre dernière modification. Sur un site avec un cache d'objets persistant - Redis, Memcached - ce vidage efface le cache pour tout le site, pas seulement pour les produits, et chaque visiteur en subit le coût pendant que le cache se remplit à nouveau. Si votre boutique utilise un cache d'objets persistant et que l'écran de l'éditeur semble lourd, ou si vous remarquez un ralentissement du site après avoir utilisé BEAR, désactivez le vidage : add_filter( 'woobe_use_cache_flush', '__return_false' ); Le compromis : le tableau peut occasionnellement afficher une valeur antérieure à votre dernière modification. Recharger la page corrige cela, et les données elles-mêmes ne sont jamais affectées - seulement ce que vous voyez.
  • ...