2016-07-19 16 views
3

Ich möchte den externen Tabellenwert in WooCommerce Checkout von Firmennamen Feld anzeigen. Wir können eine externe Tabelle erstellen und einen Teil des Firmennamens einfügen.Anzeigen von benutzerdefinierten Tabellenwerte in WooCommerce Checkout-Formular

Wenn der Benutzer unseren Service im Checkout-Feld anmeldet, sollte der Kunde den Firmennamen in einem benutzerdefinierten Optionsfeld auswählen. Diese Werte sollten in einer benutzerdefinierten Datenbanktabelle angezeigt werden.

enter image description here

Wie kann ich das erreichen?

Vielen Dank im Voraus.

Antwort

3

Wir werden zuerst den Feldtyp der Firma deaktivieren und dann zu einem Typ 'select' (Selektor) ändern. Dann werden wir eine Abfrage maque alle Optionen Schlüssel/Werte aus Ihrer benutzerdefinierten Datenbanktabelle zu erhalten (Lassen Sie uns sagen wird ‚wp_companies‘ genannt):

(NUR FÜR DIE PRÜFUNG) NO Datenbankabfrage hier (mit 3 Optionen für Unternehmen):

add_filter('woocommerce_default_address_fields' , 'set_custom_company_checkout_field'); 
function set_custom_company_checkout_field($address_fields) { 

    unset($fields['company']['type']); 

    $address_fields['company']['type'] = 'select'; 
    $address_fields['company']['options'] = array(
     'option_1' => 'Company 1', 
     'option_2' => 'Company 2', 
     'option_3' => 'Company 3' 
    ); 
    // (optional) 
    // $address_fields['company']['default'] = 'Company 1'; 

    return $address_fields; 
} 

Fügen Sie diesen Code in function.php Datei in Ihrem aktiven Kind Thema (oder Thema gelegen).

Dieser Code ist getestet und funktioniert ...


THE REAL CODE: Erstellen Sie die Abfrage aus der Datenbank benutzerdefinierte Tabelle (angepasst werden):

add_filter('woocommerce_default_address_fields' , 'set_custom_company_checkout_field'); 
function set_custom_company_checkout_field($address_fields) { 

    // Unset company field type 
    unset($fields['company']['type']); 

    global $wpdb; 
    $select_options = array(); 

    // @@@ you will need to replace names table and columns and adapt this !!! 
    $query = "SELECT id, company FROM table"; 
    $companies_name = $wpdb->get_results($query); 

    // Storing object $company_name keys/values in $select_options array 
    foreach ($companies_name as $company_name) 
    { 
     $key = 'option_'. $company_name->ID; 
     $value = $company_name->custom_column_value; 
     $select_options[$key] = $value ; 
    } 

    $address_fields['company']['type'] = 'select'; 
    $address_fields['company']['options'] = $select_options; 
    // (optional) 
    // $address_fields['company']['default'] = $select_options['option_1']; 

    return $address_fields; 
} 

Fügen Sie diesen Code in die Datei function.php ein, die sich in Ihrem aktiven untergeordneten Thema (oder Thema) befindet.

Referenzen: