- Statut : non résolu
- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par letudianteeternelle, le il y a 9 années et 7 mois.
-
AuteurMessages
-
14 mai 2015 à 14 h 10 min #549954
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.2.1
– Version de PHP/MySQL :
– Thème utilisé : Flatsome
– Extensions en place :
– Nom de l’hebergeur : Local
– Adresse du site :Problème(s) rencontré(s) :
J’ai commencé à utiliser wordpress récemment pour réaliser ma boutique en ligne. Je sais déjà (heureusement) développer en PHP/HTML.
J’essaye d’ajouter le nom et le prénom dans le formulaire de création de compte. J’ai fait le code suivant pour ça et ça marche très bien (le problème c’est la suite):function custom_register_addfields(){
?>
<p class="form-row form-row-first">
<label for="reg_billing_first_name"><?php _e( 'Prenom', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?> » />
</p>
<p class="form-row form-row-last">
<label for="reg_billing_last_name"><?php _e( 'Nom', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?> » />
</p>
<?php
}
add_action( 'woocommerce_register_form_start', 'custom_register_addfields' ,10,0);Maintenant, pour la validation (code ci-dessous), j’ai cette erreur :
Fatal error: Call to a member function add() on a non-object
à la ligne où il y a « $validation_errors->add… »function custom_register_validatefields( $username, $email,$validation_errors ) {
if ( !isset( $_POST[‘billing_first_name’] ) || empty( $_POST[‘billing_first_name’] ) ) {
$validation_errors->add( ‘billing_first_name_error’, __( ‘<strong>Error</strong>: First name is required!’, ‘woocommerce’ ) );
}
if ( !isset( $_POST[‘billing_last_name’] ) || empty( $_POST[‘billing_last_name’] ) ) {
$validation_errors->add( ‘billing_last_name_error’, __( ‘<strong>Error</strong>: Last name is required!.’, ‘woocommerce’ ) );
}
}
return $validation_errors;
}
add_action( ‘woocommerce_register_post’, ‘custom_register_validatefields’, 10, 3 );Pour terminer, le code de sauvegarde des deux champs en base ne marche pas non plus, ci-dessous le code
function custum_register_savefields( $customer_id) {
if ( isset( $_POST[‘billing_first_name’] ) ) {
// WordPress default first name field.
update_user_meta( $customer_id, ‘first_name’, sanitize_text_field( $_POST[‘billing_first_name’] ) );
// WooCommerce billing first name.
update_user_meta( $customer_id, ‘billing_first_name’, sanitize_text_field( $_POST[‘billing_first_name’] ) );
}
if ( isset( $_POST[‘billing_last_name’] ) ) {
// WordPress default last name field.
update_user_meta( $customer_id, ‘last_name’, sanitize_text_field( $_POST[‘billing_last_name’] ) );
// WooCommerce billing last name.
update_user_meta( $customer_id, ‘billing_last_name’, sanitize_text_field( $_POST[‘billing_last_name’] ) );
}
}
add_action( ‘woocommerce_created_customer’, ‘custum_register_savefields’ );Ai-je loupé quelque chose? Est ce parce que je n’utilise pas les bonnes actions? Je désespère, je vous prie de bien vouloir m’aider.
Merci d’avance
[Modérations] Le questionnaire doit rester au début du message, merci d’utiliser les balises codes pour vos codes.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.