在 WooCommerce 结帐表单中显示自定义 table 值
Displaying custom table values in WooCommerce checkout form
我想在公司名称字段的 WooCommerce 结帐中显示外部 table 值。我们可以创建外部 table 并插入一些公司名称。
当用户在结帐字段中注册我们的服务时,客户应在自定义 select 选项字段中 select 公司名称。此值应从自定义数据库 table.
中显示
我怎样才能做到这一点?
提前致谢。
我们将首先取消公司字段类型的设置,然后将其更改为类型'select'(选择器)。然后我们将查询以从您的自定义数据库 table 中获取所有选项 key/values(假设称为 'wp_companies'):
(仅用于测试) 此处没有数据库查询(公司有 3 个选项):
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;
}
将此代码粘贴到位于您的活动子主题(或主题)中的 function.php 文件中。
此代码已经过测试并且可以工作...
THE REAL CODE: Making the query from database custom table (to be adapted):
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;
}
将此代码粘贴到位于您的活动子主题(或主题)中的 function.php 文件中。
参考文献:
我想在公司名称字段的 WooCommerce 结帐中显示外部 table 值。我们可以创建外部 table 并插入一些公司名称。
当用户在结帐字段中注册我们的服务时,客户应在自定义 select 选项字段中 select 公司名称。此值应从自定义数据库 table.
中显示我怎样才能做到这一点?
提前致谢。
我们将首先取消公司字段类型的设置,然后将其更改为类型'select'(选择器)。然后我们将查询以从您的自定义数据库 table 中获取所有选项 key/values(假设称为 'wp_companies'):
(仅用于测试) 此处没有数据库查询(公司有 3 个选项):
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;
}
将此代码粘贴到位于您的活动子主题(或主题)中的 function.php 文件中。
此代码已经过测试并且可以工作...
THE REAL CODE: Making the query from database custom table (to be adapted):
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;
}
将此代码粘贴到位于您的活动子主题(或主题)中的 function.php 文件中。
参考文献: