• Resolved tayssir.ch

    (@tayssirch)


    Hello, I have a user custom field for vendor called “seller_vat”

    add_filter( 'dokan_settings_form_bottom', 'extra_fields', 10, 2);
    
    function extra_fields( $current_user, $profile_info ){
    $seller_vat= isset( $profile_info['seller_vat'] ) ? $profile_info['seller_vat'] : '';
    ?>
     <div class="gregcustom dokan-form-group">
            <label class="dokan-w3 dokan-control-label" for="setting_address">
                <?php _e( 'VAT Number', 'dokan' ); ?>
            </label>
            <div class="dokan-w5">
                <input type="text" class="dokan-form-control input-md valid" name="seller_vat" id="reg_seller_vat" value="<?php echo $seller_vat; ?>" />
            </div>
        </div>
        <?php
    }
    
        //save the field value
    
    add_action( 'dokan_store_profile_saved', 'save_extra_fields', 15 );
    function save_extra_fields( $store_id ) {
        $dokan_settings = dokan_get_store_info($store_id);
        if ( isset( $_POST['seller_vat'] ) ) {
            $dokan_settings['seller_vat'] = $_POST['seller_vat'];
        }
     update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
    }
    
        // show on the store page
    
    add_action( 'dokan_store_header_info_fields', 'save_seller_vat', 10);
    
    function save_seller_vat($store_user){
    
        $store_info    = dokan_get_store_info( $store_user);
    
       ?>
            <?php if ( isset( $store_info['seller_vat'] ) && !empty( $store_info['seller_vat'] ) ) { ?>
                <i class="fa fa-globe"></i>
                <?php echo esc_html( $store_info['seller_vat'] ); ?>
        
        <?php } ?>
           
      <?php
    
    }

    there is any option to display this vat if exist on Invoice?

Viewing 1 replies (of 1 total)
  • Plugin Contributor alexmigf

    (@alexmigf)

    Hello @tayssirch

    Please try adding this to your theme functions.php file:

    add_action( 'wpo_wcpdf_after_customer_notes', function( $document_type, $order ) {
    	if( !empty($order) && $document_type == 'invoice' ) {
    		$vendor_id = get_dokan_vendor_from_order( $order->get_id() );
    		if( ! function_exists( 'dokan_get_store_info' ) ) return;
    		$store_info = dokan_get_store_info( $vendor_id );
    
    		if ( isset( $store_info['seller_vat'] ) && !empty( $store_info['seller_vat'] ) ) {
    			echo '<div class="seller_vat">'.esc_html( $store_info['seller_vat'] ).'</div>';
    		}
    	}
    }, 10, 2 );
    
    function get_dokan_vendor_from_order( $order_id ) {
    	if( empty($order_id) ) return;
    
    	if ( function_exists( 'dokan_get_seller_ids_by' ) ) {
    		$seller_list = dokan_get_seller_ids_by( $order_id );
    	} else {
    		$seller_list = array_unique( array_keys( dokan_get_sellers_by( $order_id ) ) );
    	}
    
    	$vendor_id = '';
    	if ( count( $seller_list ) > 1 ) {
    		foreach($seller_list as $vendor_id) {
    			$vendor_id = $vendor_id;
    		}
    	} else {
    		$vendor_id  = $seller_list[0];
    	}
    
    	return $vendor_id;
    }

    If you never worked with action/filters please refer this documentation page: How to use filters

    • This reply was modified 4 years, 4 months ago by alexmigf.
Viewing 1 replies (of 1 total)
  • The topic ‘Display Vendor Vat Number’ is closed to new replies.