WordPress

Niestandardowe pola rejestracji woocommerce — WordPress Development Stack Exchange

  • 23 września, 2017
  • 5 min read
Niestandardowe pola rejestracji woocommerce — WordPress Development Stack Exchange


Cześć, próbuję utworzyć niestandardową stronę rejestracji dla woocommerce, do momentu sprawdzenia poprawności działa dobrze, ale kiedy próbuję wstawić dane do bazy danych, nic się nie dzieje. to jest przykładowy kod, którego używam „

<?php

function wooc_extra_register_fields() {

       ?>



       <p class="form-row form-row-first">

       <label for="reg_billing_first_name"><?php _e( 'First name', '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( 'Last name', '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>



       <p class="form-row form-row-wide">

       <label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>

       <input type="Number" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php if ( ! empty( $_POST['billing_phone'] ) ) esc_attr_e( $_POST['billing_phone'] ); ?>" />

       </p>


        <p class="form-row form-row-wide">

       <label for="reg_num"><?php _e( 'MCI Registration Num', 'woocommerce' ); ?><span class="required">*</span></label>

       <input type="text" class="input-text" name="reg_num" id="reg_num" value="<?php if ( ! empty( $_POST['reg_num'] ) ) esc_attr_e( $_POST['reg_num'] ); ?>" />

       </p>

        <p class="form-row form-row-wide">

       <label for="Year_of_reg"><?php _e( 'Year of Registration', 'woocommerce' ); ?><span class="required">*</span></label>

       <input type="Number" class="input-text" name="Year_of_reg" id="Year_of_reg" value="<?php if ( ! empty( $_POST['Year_of_reg'] ) ) esc_attr_e( $_POST['Year_of_reg'] ); ?>" />

       </p>


        <p class="form-row form-row-wide">

       <label for="qualification"><?php _e( 'Qualification', 'woocommerce' ); ?><span class="required">*</span></label>

       <input type="text" class="input-text" name="qualification" id="qualification" value="<?php if ( ! empty( $_POST['qualification'] ) ) esc_attr_e( $_POST['qualification'] ); ?>" />

       </p>




       <?php

}



add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );



?>

'<?php

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>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' ) );

       }



       if ( isset( $_POST['billing_phone'] ) && empty( $_POST['billing_phone'] ) ) 
       {

              $validation_errors->add( 'billing_phone_error', __( '<strong>Error</strong>: Phone is required!.', 'woocommerce' ) );

       }


       if ( isset( $_POST['reg_num'] ) && empty( $_POST['reg_num'] ) ) 
       {

              $validation_errors->add( 'reg_num_error', __( '<strong>Error</strong>: Registration Number is required! if you are facing any problem give us a call or contact us on support@ozmant.com .', 'woocommerce' ) );

       }


       if ( isset( $_POST['Year_of_reg'] ) && empty( $_POST['Year_of_reg'] ) ) 
       {

              $validation_errors->add( 'year_of_reg_error', __( '<strong>Error</strong>: MCI Year of Registration is required!.', 'woocommerce' ) );

       }




    }


}


add_action( 'woocommerce_register_post', 'wooc_validate_extra_register_fields', 10, 5 );




function wooc_save_extra_register_fields( $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'] ) );
    }

    if ( isset( $_POST['billing_phone'] ) ) {
        // WooCommerce billing phone
        update_user_meta( $customer_id, 'billing_phone', sanitize_text_field( $_POST['billing_phone'] ) );
    }

    if ( isset( $_POST['reg_num'] ) ) {
        // WooCommerce billing address
        update_user_meta( $customer_id, 'reg_num', sanitize_text_field( $_POST['reg_num'] ) );
    }

    if ( isset( $_POST['Year_of_reg'] ) ) {
        // WooCommerce billing postcode
        update_user_meta( $customer_id, 'Year_of_reg', sanitize_text_field( $_POST['Year_of_reg'] ) );
    }

    if ( isset( $_POST['qualification'] ) ) {
        // WooCommerce billing city
        update_user_meta( $customer_id, 'qualification', sanitize_text_field( $_POST['qualification'] ) );
    }


}

add_action( 'woocommerce_created_customer', 'wooc_save_extra_register_fields' );
?>


Źródło

Warto przeczytać!  Jak masowo optymalizować obrazy za pomocą Smush