Как захватить и передать значения поля повторителя на моей странице администрирования wp-плагина - PullRequest
0 голосов
/ 16 апреля 2019

Я пишу новый плагин wp и хочу собирать и отправлять значения репитера, поданные на его странице администратора, я не хочу и не могу использовать ACF pro другие, поэтому я настроил поле репитера с помощью javascript. Использование переключателя для разных типов ввода, захват значений полей повторителей в массиве немного усложнил ситуацию. Можете ли вы просмотреть мой код и сообщить мне, как мне нужно передать значения? Спасибо.

public function setup_fields() {
$td_settings = array(
    array(
                    'uid' => 'TD_repeater_field',
            'label' => 'Treasure Data Events',
            'section' => 'TD_integration_section',
            'type' => 'repeater',
            'default' => array(

           )  
    );
foreach( $td_settings as $td_setting ){
    add_settings_field( $td_setting['uid'], $td_setting['label'], 
    array( $this, 'field_callback' ), 'td_fields', 
    $td_setting['section'], $td_setting );
register_setting( 'td_fields', $td_setting['uid'] );

     }     

);

public function field_callback( $arguments ) {
    $value = get_option( $arguments['uid'] );
    if( ! $value ) {
        $value = $arguments['default'];
    }
    switch( $arguments['type'] ){
    case 'repeater':
$row = '';
foreach( $arguments['type'] as $key => $label ){
$row .= sprintf( '<input type="text" name="td-method"  
    value="%s" /><input type="text" name="td-prop"  value= "%s"/>', 
    $key, ( $value[ array( $key, $value, true ) ] ), $label );
}

printf('<div id="repeater">
<div data-repeater-list="category-group">
     <div data-repeater-item id="%1$s">
     <input type="hidden" name="id" id="cat-id"/>
     %2$s
      <input data-repeater-delete type="button" value="Delete"/>
      </div>
      </div>
       <input data-repeater-create type="button" value="Add"/>
   </div>', $arguments['uid'], $row);

 break;
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...