请帮帮我…我尝试了太多不同的东西。。。我试图用数据库中的数据填充一个选择字段。
// Add fields & settings to the custom product tab
$SQL = "SELECT DISTINCT table_name FROM wp_lbc_prices";
$array = $wpdb->get_results( $SQL, ARRAY_A);
add_action( 'woocommerce_product_data_panels',
'wcpt_roller_blind_options_product_tab_content' );
function wcpt_roller_blind_options_product_tab_content() {
?><div id='roller_blind_options' class='panel woocommerce_options_panel'><?php
?><div class='options_group'><?php
woocommerce_wp_select( array(
'id' => 'roller_blind_tables',
'label' => __( 'Price Tables', 'wcpt' ),
'placeholder' => '',
'desc_tip' => 'true',
'description' => __( 'Select Associated Price Table.', 'wcpt' ),
'options' => $array
));
?></div>
</div><?php
当然,对数据库的查询工作正常,结果正在返回。。。但我不确定如何创建一个可接受的数组(我习惯于使用asp.net,这似乎使它更简单!)。我返回的数据不需要id,因此下拉列表的值和文本可以相同。
2条答案
按热度按时间hjzp0vay1#
你首先要确定
table_name
或者将其替换为要从数据库表中查询的正确列slugwp_lbc_prices
.你需要换新的
WPDB
方法get_results()
由get_col()
它查询单个列并以本机方式提供数组。准备数组,以便使用将值复制到键
array_combine()
我已经用hooked函数完成了您的代码,该函数添加了一个自定义产品选项卡。您重新访问的代码将是:
现在应该更好用了。但由于这是一个自定义的数据库表,因此不可测试。
kmynzznz2#
get\u results函数返回一个带有索引的数组,这样值就可以像这样的对象数组
array([0]=>object,[1]=>object)
你能分享一下你在$array变量中得到了什么吗?