Blog Web & Design

Comment mettre en place un système de Click & Collect sur votre WooCommerce

Si vous êtes prêt à modifier le code de votre site WordPress/WooCommerce pour offrir à vos clients une option de Click & Collect, vous êtes au bon endroit. Dans cet article, nous vous expliquerons en détail comment configurer une solution simple et efficace.

Étape 1 : Créer un plugin

Avant de commencer, il est important de noter que nous allons créer un plugin WooCommerce pour ajouter cette nouvelle méthode de livraison. De cette manière, vous pourrez effectuer des mises à jour sans affecter le code principal de votre thème.

Pour créer un plugin WordPress, rendez-vous dans les dossiers de votre site et commencez par créer un répertoire dans « wp-content/plugins ». Nommez le fichier principal « nom-du-plugin.php » avec les informations d’en-tête :

Besoin d’un spécialiste Woocommerce pour votre projet ? Contactez-moi

<?php
/**
 * Plugin Name: Mon Plugin Click and collect
 * Description: Mes fonctions personnalisées
 * Version: 1.0
 * Author: Votre nom
 * Author URI: URL de votre site Web
 */

Enregistrez-le fichier puis activez le plugin depuis le tableau de bord WordPress, section « Extensions ».
Votre plugin sera alors fonctionnel, ajoutant des fonctionnalités personnalisées que vous saisirez dans ce fichier .php à votre site tout en préservant la stabilité de WordPress.

Capture d'écran : Liste des plugins dans WooCommerce


Étape 2 : Créer une nouvelle méthode de livraison

Dans cette étape, nous allons ajouter une nouvelle méthode de livraison qui permettra à vos clients de choisir le retrait en point de vente plutôt que la livraison traditionnelle. Le code ci-dessous vous permettra de créer cette méthode de livraison :

/**
 * Fonction pour ajouter une méthode de livraison "Click and Collect" dans WooCommerce.
 */
function wpcac15_ajouter_click_and_collect_method( $methods ) {
    // Crée une classe pour la méthode de livraison
    class WC_Click_And_Collect_Shipping_Method extends WC_Shipping_Method {
        /**
         * Constructeur de la méthode de livraison.
         */
        public function __construct() {
            $this->id                 = 'click_and_collect'; // ID unique de la méthode de livraison
            $this->method_title       = 'Click and Collect'; // Nom affiché de la méthode de livraison
            $this->method_description = 'Retirez votre commande en magasin'; // Description de la méthode de livraison

            // Activer la méthode de livraison
            $this->enabled = 'yes';

            // Définir les coûts et les frais d'emballage ici si nécessaire
            $this->init();

            // Permettre à WooCommerce de gérer les calculs des frais
            $this->supports = array(
                'shipping-zones',
                'instance-settings',
                'instance-settings-modal',
            );
        }

        /**
         * Calcul des frais d'expédition.
         *
         * @param array $package Les détails du panier.
         */
        public function calculate_shipping( $package = array() ) {
            // Vous pouvez définir ici votre propre logique de calcul des frais de livraison.
            // Par exemple, en fonction de la distance du magasin, du poids, etc.
            // Vous devrez utiliser $this->add_rate() pour définir les frais de livraison.
        }
    }

    // Enregistrez la classe comme une méthode de livraison dans WooCommerce
    function ajouter_click_and_collect_method_to_shipping_methods( $methods ) {
        $methods['click_and_collect'] = 'WC_Click_And_Collect_Shipping_Method';
        return $methods;
    }
    add_filter( 'woocommerce_shipping_methods', 'ajouter_click_and_collect_method_to_shipping_methods' );

    return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'wpcac15_ajouter_click_and_collect_method' );

Une fois cette étape terminée, votre nouvelle méthode de livraison « Click and Collect » Woocommerce sera disponible dans la liste des méthodes d’expédition sur la page de panier de vos clients.

Capture d'écran : Nouveau mode d'expédition disponible dans les Zone d'expédition de WooCommerce

Egalement, Cette nouvelle méthode sera ajoutée à votre liste des méthodes d’expéditions disponibles sur la page de panier.

Capture d'écran

et visible sur votre facture PDF

Facture Woocommerce : La nouvelle méthode d'expédition dans la facture WooCommerce

Étape 3 : Afficher le choix du point de retrait dans l’édition de la commande

Vous pouvez également afficher le choix du point de retrait en magasin ou autre dans l’édition de la commande dans l’interface d’administration WooCommerce. Cette fonctionnalité permettra de mieux gérer les commandes Click & Collect. Voici comment faire :

Capture d'écran de la page d'édition d'une commande Woocommerce

Voici la fonction qui va vous permettre d’afficher l’information

Besoin d’un spécialiste Woocommerce pour votre projet ? Contactez-moi

// Afficher la méthode de livraison dans le détail de la commande en admin
function wpcac15_display_shipping_and_pickup_in_order( $order ) {
    
    $shipping_methods = $order->get_shipping_methods();
    

    $is_click_and_collect = false;
    foreach ( $shipping_methods as $shipping_method ) {
        if ( $shipping_method['method_id'] === 'Click and Collect' ) {
            $is_click_and_collect = true;
            break;
        }
    }

    if ( $is_click_and_collect ) {
        
        echo '<h3>Click and Collect </h3>';
        
        echo '<p><strong>Oui</strong><br/></p>';

    } elseif ( ! $is_click_and_collect ) {

        echo '<h3>Click and Collect</h3>';

        // pas de click and collecy
        
    }

}
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'wpcac15_display_shipping_and_pickup_in_order', 30, 5 );

Voilà, vous avez maintenant toutes les étapes nécessaires pour mettre en place une extension de retrait en magasin pour WooCommerce. Si vous avez besoin d’aide pour la configuration ou si vous avez des questions, n’hésitez pas à me contacter.

Dernière mise à jour le Auteur : Thomas Dufranne

Ce contenu vous a-t-il été utile ?

Merci pour votre avis !

Si vous pensez pouvoir aider d'autres personnes, pensez à partager le contenu

Merci pour votre avis !

Désolé que vous n'ayez pas trouvé votre réponse.

Je vous invite à me poser vos question par commentaire ou par e-mail !

Repondre

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.