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: