Başlamak için, hesap giriş sayfasında WooCommerce kayıt formlarının etkinleştirildiğinden emin olun. Bunun için WooCommerce > Ayarlar > Hesaplar‘a gidin ve müşteri kaydını etkinleştirin.
Adım Adım Alan Oluşturmaya Başlayalım
Açıkça e-posta, şifre ve kullanıcı adını içeren bir WooCommerce form çıkıyor varsayılan olarak, ancak aşağıdaki eylemleri kullanarak bu yapıya daha fazla alan ekleyebiliriz. Şu anda, ad, soyad ve telefon numarası gibi ekstra alanları dahil etmek için, tema klasörünüzde bulunan functions.php‘nizin sonuna doğru aşağıdaki kod satırlarını ekleyin.
O Halde Başlayalım ...
function wooc_extra_register_fields() {?> <p class="form-row form-row-wide"> <label for="reg_billing_phone"><?php _e( 'Telefon Numaranız', 'woocommerce' ); ?></label> <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" /> </p> <p class="form-row form-row-first"> <label for="reg_billing_first_name"><?php _e( 'Adnız', '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( 'Soyadınız', '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> <div class="clear"></div> <?php } add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );
Bu kayıt formu alanlarını fatura adresiyle ilişkilendirmek için, alan adının önüne “billing_” önekini eklemeniz gerekir. Aşağıda, kayıt formuna eklenebilecek ve bir fatura adresiyle ilişkilendirilebilecek tüm geçerli WooCommerce form alanlarının bir listesi bulunmaktadır.
- billing_first_name
- billing_last_name
- billing_company
- billing_address_1
- billing_address_2
- billing_city
- billing_postcode
- billing_country
- billing_state
- billing_email
- billing_phone
Şimdi yeni eklenen bu form alanlarını da doğrulamamız gerekiyor. Bu yapı alanlarını doğrulamak için, tema klasöründe bulunan functions.php dosyanızın sonuna aşağıdaki kod satırlarını ekleyin.
/** * Kayıt Alanları Doğrulama. */ function wooc_validate_extra_register_fields( $username, $email, $validation_errors ) { if ( isset( $_POST['billing_first_name'] ) && empty( $_POST['billing_first_name'] ) ) { $validation_errors->add( 'billing_first_name_error', __( '<strong>Hata</strong>: Adınızı Girmediniz!', 'woocommerce' ) ); } if ( isset( $_POST['billing_last_name'] ) && empty( $_POST['billing_last_name'] ) ) { $validation_errors->add( 'billing_last_name_error', __( '<strong>Hata</strong>: Soyadınızı Girmediniz!', 'woocommerce' ) ); } return $validation_errors; } add_action( 'woocommerce_register_post', 'wooc_validate_extra_register_fields', 10, 3 );
Yukarıda eklediğimiz kod ile $_POST dizisini kontrol ettiğini ve bir değer yoksa veya geçersiz veri varsa bir hata mesajı eklediğinizi göreceksiniz.
Aynı şekilde çeşitli doğrulama kuralları ekleyebilir ve ayrıca farklı alanlara doğrulama kuralları ekleyebilirsiniz.
Ve bu değerleri veritabanına kaydetmemiz gerekiyor.
Veritabanına değerler eklemek için, temanızın functions.php dosyasına aşağıdaki işlevi ekleyin:
function wooc_save_extra_register_fields( $customer_id ) { if ( isset( $_POST['billing_phone'] ) ) { // WooCommerce'da kullanılan telefon update_user_meta( $customer_id, 'billing_phone', sanitize_text_field( $_POST['billing_phone'] ) ); } if ( isset( $_POST['billing_first_name'] ) ) { // WooCommerce'da kullanılan varsayılan ad alanı update_user_meta( $customer_id, 'first_name', sanitize_text_field( $_POST['billing_first_name'] ) ); // WooCommerce'da kullanılan ad alanı update_user_meta( $customer_id, 'billing_first_name', sanitize_text_field( $_POST['billing_first_name'] ) ); } if ( isset( $_POST['billing_last_name'] ) ) { // WooCommerce'da kullanılan varsayılan soyadı alanı update_user_meta( $customer_id, 'last_name', sanitize_text_field( $_POST['billing_last_name'] ) ); // WooCommerce'da kullanılan soyad alanı update_user_meta( $customer_id, 'billing_last_name', sanitize_text_field( $_POST['billing_last_name'] ) ); } } add_action( 'woocommerce_created_customer', 'wooc_save_extra_register_fields' );
Ve burada işimiz bitti!
Hesabınızdaki fatura adresi sayfasında, kayıt formundaki değerleri hali hazırda doldurulmuş olarak görebilirsiniz.
Ve Son ...
İnşallah bu yazımla WooCommerce üyelik sayfasına ek alan eklemek isteyenlere yardımcı olmuşumdur.
Şimdilik sağlıcakla kalın…