WooCommerce自定义字段数组不起作用

时间:2016-08-16 23:49:24

标签: php wordpress woocommerce checkout custom-fields

我遇到了一个我似乎无法解决的奇怪问题。它与我试图添加到WooCommerce结帐页面的自定义字段有关。

首先,我创建了一个生成数组的函数:

function eci_get_events() {

    $args = array(

        'post_type'         =>  'tribe_events',
        'posts_per_page'    =>  -1,
        'post_status'       =>  'publish',
        'order'             =>  'ASC',
        'orderby'           =>  'meta_value_num',
        'meta_key'          =>  '_EventStartDate'

    );

    $event_query = new WP_Query($args);

    $event_list = array();

    if ($event_query->have_posts()) : while ($event_query->have_posts()) : $event_query->the_post();

        $event_list[get_the_id()] = get_the_title();

    endwhile; endif; wp_reset_postdata();

    return $event_list;

}

然后在此函数中使用:

function ecitpm_checkout_fields( $fields ) {

    $fields['billing']['eci_event'] = array(
        'type'          =>  'select',
        'label'         =>  __('Event', 'woocommerce'),
        'required'      =>  true,
        'class'         =>  array('form-row-wide'),
        'clear'         =>  true,
        'options'       =>  eci_get_events() // Here's that function
     );

    return $fields;

}
add_filter( 'woocommerce_checkout_fields', 'ecitpm_checkout_fields' );

然而,无论我尝试什么,当我在第一个函数中使用$event_query循环时,这个东西都不会在前端呈现。例如:

使用:

$event_list = array();

$event_list[get_the_id()] = get_the_title();

是否有效:

$event_list = array();

if ($event_query->have_posts()) : while ($event_query->have_posts()) : $event_query->the_post();

    $event_list[get_the_id()] = get_the_title();

endwhile; endif; wp_reset_postdata();

修改

根据要求,这是var_dump函数生成的数组的快速eci_get_events()

array(2) {
  [11]=>
  string(11) "Hello There"
  [23]=>
  string(12) "Another Test"
}

我已尝试过所有事情,但未能找到解决方案。

如何解决这个问题?

谢谢! 托马斯

0 个答案:

没有答案