Sur de nombreux sites e-commerce, il est possible de saisir un message personnalisé dans les commandes qui sera imprimé par le fournisseur et ajouté au colis. C’est notamment très utilisé au moment des fêtes, lorsque les commandes sont destinées à être des cadeaux. Par défaut, WooCommerce n’inclut pas de possibilité de laisser un message personnalisé dans les commandes cadeau. Il y a le champ “notes de commande”, mais bien souvent les clients ne pensent pas à l’utiliser pour cela. Je vous propose donc un petit plugin léger qui va permettre de :
- Ajouter une case à cocher “Commande cadeau” dans le processus de commande
- Si cochée, cette option dévoile un champ de saisie masqué par défaut
- Le client peut saisir son message personnalisé
- Côté backoffice, l’administrateur voit le message dans les données de la commande
- Un bouton “Imprimer” ouvre le message en PDF dans un nouvel onglet du navigateur et permet son impression.
Message personnalisé dans les commandes : captures d'écran
Le code du plugin "Commande cadeau"
.select2.select2-container.select2-container--default {
margin-bottom: 20px!important; /* Ajuste la valeur si nécessaire */
}
';
}
}
add_action('admin_head', 'mc_add_inline_admin_css');
// Ajout de la case à cocher et du champ texte sur la page du formulaire client
function mc_add_gift_message_field() {
echo '';
echo '';
echo '
';
echo '';
echo '';
echo '';
?>
get_id(), '_gift_message', true);
if ($gift_message) {
echo 'Message Cadeau
';
echo '' . nl2br(esc_html($gift_message)) . '
';
echo 'Imprimer';
}
}
add_action('woocommerce_admin_order_data_after_order_details', 'mc_display_gift_message_in_admin');
// Génération du PDF et impression
function mc_print_gift_message() {
if (isset($_GET['order_id'])) {
$order_id = intval($_GET['order_id']);
$gift_message = get_post_meta($order_id, '_gift_message', true);
if ($gift_message) {
$order = wc_get_order($order_id);
$prenom_billing_client = $order->get_billing_first_name();
$nom_billing_client = $order->get_billing_last_name();
require_once(plugin_dir_path(__FILE__) . 'tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$header_message = '' . esc_html($prenom_billing_client) . ' ' . esc_html($nom_billing_client) . ' vous adresse un message
';
$pdf->writeHTML($header_message . '' . nl2br(esc_html($gift_message)) . '
', true, false, true, false, '');
$pdf->Output('message_cadeau.pdf', 'I');
exit;
}
}
}
add_action('wp_ajax_mc_print_gift_message', 'mc_print_gift_message');
add_action('wp_ajax_nopriv_mc_print_gift_message', 'mc_print_gift_message');
La librairie TCPDF
Pour permettre à l’administrateur d’imprimer le message personnalisé de la commande, le plugin a besoin de la librairie TCPDF. Vous pouvez la télécharger sur leur GitHub et placer un dossier tcpdf (attention de respecter la casse)au même niveau que votre fichier message-cadeau.php.
Il est primordial d’installer le dossier tcpdf à la racine du plugin, sinon il y aura un plantage et vous ne pourrez pas l’activer. Vous pouvez également télécharger le plugin complet grâce au bouton ci-dessous, la librairie TCPDF est incluse.