Les meilleurs développeurs WordPress freelances sont sur Codeur.com

Ajout d'un champs de selection dans le woocommerce admin order

 Fermé·Moins de 500 €·16 offres·912 vues·9 interactions


Bonjour,
Nous sommes une société de taxi, nous effectuons des déplacements pour nos clients d’un point A à un point B. Il se peut également que nous effectuons des mises à disposition pour des clients c’est-à-dire une location à l’heure d’un chauffeur et de son véhicule.
Notre site internet [URL visible pour les membres Pro] est hébergé chez O2switch sur un serveur partagé. Le site a été fait sous WordPress, avec deux éditeurs de thèmes Astra et Elementor.
Pour le calcul du coût d’un trajet et/ou d’une mise à disposition nous utilisons un plugin qui s’appelle SIVTC, (un calculateur) présent sur la page suivante :
[URL visible pour les membres Pro]
Le calculateur envoie les commandes dans woocommerce et stocke également les données du checkout form dans les champs personnalisés de la commande.
Une fois la prestation réservée, nous devons attribuer les réservations à des chauffeurs partenaires et nous aimerions faire cette attribution à travers les options du woocommerce pour avoir le moins de choses à faire manuellement.
D'autres informations seront rattachées au chauffeur mais nous verrons cela un peu plus loin dans le message.
Partie 1 :
En effet, dans la partie admin de Woocommerce, nous avons créé un nouveau rôle d'utilisateur appelé chauffeur (driver).
Nous aimerions avoir la même fenêtre de recherche que pour le client afin de pouvoir affecter un chauffeur à un trajet. Nous avons réussi à obtenir la même fenêtre de sélection que celle du client mais nous n’arrivons pas à sauvegarder le nom du chauffeur affecté à la prestation.

En utilisant, le plugin checkout form nous avons créé une nouvelle section appelée driver information. Une fois que nous affectons un chauffeur à une commande, nous souhaitons que les métadonnées suivantes apparaissent et soient enregistrées dans la commande et qu’elle se mettent à jour si nous sélectionnons un nouveau chauffeur ou qu’elle se mettent à blanc si nous désaffectons un chauffeur.

Les champs qui doivent s’inscrire dans les métadonnées à la sélection d’un chauffeur sont les suivants :
- Nom de la société du chauffeur champs « driver_compagny »
- Nom et prénom du chauffeur champs « driver_name »
- Numéro de Siren champ « driver_siren »
- Numéro tva champs « driver_vat »
- Marque, modèle et immatriculation du véhicule « driver_car »
- Numéro de téléphone du chauffeur « driver_phone »
Il faut créer une entrée sur une page web pour simplifier la saisie des informations des drivers.

Partie 2 :
Nous souhaitons créer au total 6 nouveaux statuts de commande.
Un nouveau statut de commande sous Woocommerce qui s’appellerait « chauffeur affecté » ou « assigned driver » ce statut de commande n’envoie aucun mail ou sms.
Ensuite nous voulons créer 4 autres statuts qui envoie un mail et un sms aux clients en fonction de la langue de commande français, anglais ou autre :
« assigned driver airport » ;
« assigned driver station » ;
« assigned driver other » ;
« assigned driver hour ».

Les envoies de mails et sms fonctionnent automatiquement avec des plugins en fonction du statut des commandes.
Nous avons commencé avec le code ci-dessous mais cela ne fonctionne pas complètement.

add_action( 'woocommerce_checkout_create_order', 'save_custom_checkout_field', 10, 2 );
function save_custom_checkout_field( $order, $data ) {
$order->update_meta_data( 'driver_compagny', 'unassigned' );
$order->update_meta_data( 'driver_name', 'unassigned' );
$order->update_meta_data( 'driver_siren', 'unassigned' );
$order->update_meta_data( 'driver_vat', 'unassigned' );
}

// Output a custom editable field in backend edit order pages under general section
add_action('woocommerce_admin_order_data_after_order_details', 'editable_order_custom_field', 10, 1 );
function editable_order_custom_field( $order ){
// Display the custom editable field
?>
<p class="form-field form-field-wide wc-driver-user">
<label for="driver_user">
Driver : </label>
<select class="wc-customer-search" id="driver_user" name="driver_name" role="driver" data-placeholder="Unassigned Driver" data-allow_clear="true">
<option value="" selected="selected"></option>
</select></p>
<input type="hidden" name="custom_select_field_nonce" value="<?php echo wp_create_nonce(); ?>">
<?php
}

// Save the custom editable field value as order meta data and update order item meta data
add_action( 'woocommerce_process_shop_order_meta', 'save_order_custom_field_meta_data', 12, 2 );
function save_order_custom_field_meta_data( $post_id, $post ){
if( isset( $_POST[ 'driver_compagny' ] ) ){
update_post_meta( $post_id, 'driver_compagny', esc_attr( $_POST[ 'driver_compagny' ] ) );
}
if( isset( $_POST[ 'driver_name' ] ) ){
update_post_meta( $post_id, 'driver_name', esc_attr( $_POST[ 'driver_name' ] ) );
}
if( isset( $_POST[ 'driver_siren' ] ) ){
update_post_meta( $post_id, 'driver_siren', esc_attr( $_POST[ 'driver_siren' ] ) );
}
if( isset( $_POST[ 'driver_vat' ] ) ){
update_post_meta( $post_id, 'driver_vat', esc_attr( $_POST[ 'driver_vat' ] ) );
}
}

Partie 3 :
D’autre part, nous souhaitons également un autre statut de commande appelé « avis client » ou « customer reviews » qui permettrait d’envoyer un email au client en français ou en anglais après sa prestation pour recueillir un avis.
Partie 4 :
Nous utilisons un plugin appelé address suggestion, le plugin utilise deux lignes d'adresse pour indiquer le numéro de la rue et le nom de la rue, nous voulons que ces deux informations apparaissent sur une seule ligne.
solution actuelle

solution après modification

Nous vous remercions de bien vouloir nous indiquer le coût de cette prestation ainsi qu’une durée de réalisation.
Nous avons d'autres projets de développement pour notre site et nous reviendrons vers vous en fonction du résultat de cette mission.
Merci d'avance pour votre aide,
L’équipe AirCab Gwenaël et Yazid.

Budget indicatif : Moins de 500 €

Publication : 29 juillet 2021 à 15h34

Profils recherchés : Développeur WordPress freelance, Expert Woocommerce freelance, Développeur back-end freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

16 freelances ont répondu à ce projet

15 propositions de devis en moins de 2h

+9
Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients

Votre navigateur Web n’est plus à jour. Il ne permet pas d’afficher correctement le site Codeur.com.
Nous vous invitons à mettre à jour votre navigateur ou à utiliser un autre navigateur plus récent.