Frequently Asked Questions

How to add more field in add new customer / edit customer on POS
I got many my customer request about add more field to add / edit customer form in POS . And since version 2.3.6 , you can add more field to pos customer form by this way.
Add those code to end of file : your_theme/function.php


and in this sample, i will add company field to add/edit customer form in POS

#1 : Add customer custom field (company) to POS

if(!function_exists('pricechangeable_op_get_login_cashdrawer_data'))
{
    function pricechangeable_op_get_login_cashdrawer_data($session_response_data){
        $text_field = array(
            'code' => 'test_new_field',
            'type' => 'text',
            'label' => 'Company',
            'placeholder' => 'Enter New Field',
            'description' => '',
            'required' => 'no',
            'allow_customer' => 'yes', // no if not hide on billing
            'allow_shipping' => 'no' // value yes / no to allow display on shipping field
          );
      /*
        $date_field = array(
            'code' => 'dob',
            'type' => 'date',
            'label' => 'DOB',
            'placeholder' => 'Enter birthday',
            'description' => '',
            'allow_shipping' => 'no' // value yes / no to allow display on shipping field
        );
        $select_field = array(
            'code' => 'gender',
            'type' => 'select',
            'label' => 'Gender',
            'options' => array(
                ['value' => 'male','label' => 'Male'],
                ['value' => 'female','label' => 'Female'],
            ),
            'placeholder' => 'Gender',
            'description' => ''
        );
        $multiselect_field = array(
            'code' => 'multiselect',
            'type' => 'multi_select',
            'label' => 'Multi Select',
            'options' => array(
                ['value' => 'male','label' => 'Male'],
                ['value' => 'female','label' => 'Female'],
            ),
            'placeholder' => 'Multi Select',
            'description' => ''
        );
        $radio_field = array(
            'code' => 'radio',
            'type' => 'radio',
            'label' => 'Radio',
            'options' => array(
                ['value' => 'male','label' => 'Male'],
                ['value' => 'female','label' => 'Female'],
            ),
            'placeholder' => 'Radio Sample',
            'description' => ''
        );
        $checkbox_field = array(
            'code' => 'checkbox',
            'type' => 'checkbox',
            'label' => 'Checkbox',
            'options' => array(
                ['value' => 'male','label' => 'Male'],
                ['value' => 'female','label' => 'Female'],
            ),
            'placeholder' => 'Checkbox Sample',
            'description' => ''
        );
       */
        $session_response_data['setting']['openpos_customer_addition_fields'][] = $text_field;
        //$session_response_data['setting']['openpos_customer_addition_fields'][] = $date_field;
        //$session_response_data['setting']['openpos_customer_addition_fields'][] = $select_field;
        //$session_response_data['setting']['openpos_customer_addition_fields'][] = $multiselect_field;
        //$session_response_data['setting']['openpos_customer_addition_fields'][] = $radio_field;
        //$session_response_data['setting']['openpos_customer_addition_fields'][] = $checkbox_field;

        return $session_response_data;
    }
}
add_filter('op_get_login_cashdrawer_data','pricechangeable_op_get_login_cashdrawer_data',10,1);
#2: get customer custom field (company) when get customer data

function pricechangeable_op_customer_data($data){
    $customer_id = isset($data['id']) ? $data['id'] : 0;
    if($customer_id)
    {
        $customer = new WC_Customer($customer_id);
        $data['test_new_field'] = get_user_meta( $customer_id, 'test_new_field', true );
    }
    return $data;
}
add_filter('op_customer_data','pricechangeable_op_customer_data',10,1);
#3: Save new customer custom field (company)

add_action('op_add_customer_after',function($customer_id,$session_data,$customer_request_data){
    if(isset($customer_request_data['test_new_field']) && $customer_request_data['test_new_field'])
    {
        $test_new_field  = isset( $customer_request_data['test_new_field'] ) ? $customer_request_data['test_new_field'] : '';
        
        update_user_meta( $customer_id, 'test_new_field', $test_new_field  );
       
    }
},100,3);



#4: Update customer custom field (company)


add_action('op_update_customer_after',function($customer_id,$session_data,$customer_request_data){
    if(isset($customer_request_data['test_new_field']) && $customer_request_data['test_new_field'])
    {
        $test_new_field  = isset($customer_request_data['test_new_field']) ? $customer_request_data['test_new_field'] : '';
        update_user_meta( $customer_id, 'test_new_field', $test_new_field  );
        
    }
    
},100,3);



And this is the result . Please take note logout and login POS again to get effect.

image

#5. Display custom field on receipt composer

<%= customer.test_new_field %>


 Last updated Wed, Sep 19 2018 6:50pm

Please Wait!

Please wait... it will take a second!