Добавление формы гравитации в Unyson Builder

Я добавляю Gravity Forms в конструктор Unyson, но проблема в том, что построитель обнаруживает / добавляет только последний заголовок / идентификатор формы.

Вот код:


    if ( ! defined( 'FW' ) ) {
        die( 'Forbidden' );
    }

    $options = array(

        'title' => array(
            'type'  => 'select',
        'value' => 'choice-3',
        'attr'  => array( 'class' => 'custom-class', 'data-foo' => 'bar' ),
        'label' => __('Label', 'fw'),
        'desc'  => __('Description', 'fw'),
        'help'  => __('Help tip', 'fw'),
        'choices' => array(),
          ), // title

    ); // $options

    $forms = GFAPI::get_forms();
    foreach ($forms as $form) {
        $form_id = $form['id'];
        $form = GFAPI::get_form( $form_id );
        $form_title = $form['title'];
        $options['title']['choices'] = array(
            $form_id => __($form_title, 'fw'),
            );
    }

Я хочу заполнить массив 'choices' заголовками всех форм гравитации.

Спасибо!


person Muhammad Zohaib    schedule 30.10.2015    source источник


Ответы (1)


Я понял. после долгих размышлений я понял, что мне следует использовать array_push вместо array в цикле foreach. И да, это устранило проблему. Вот последний и рабочий цикл:


    foreach ($forms as $form) {
        $form_id = $form['id'];
        $form = GFAPI::get_form( $form_id );
        $form_title = $form['title'];
        $form_title_value = __($form_title, 'fw');
        array_push( $options['title']['choices'],
            $form_id = $form_title_value );
    }

Руководство по array_push (): http://php.net/manual/en/function.array-push.php

person Muhammad Zohaib    schedule 30.10.2015