如何在我的wp插件管理页面中捕获和提交转发器字段的值

时间:2019-04-16 18:51:33

标签: php wordpress plugins

我正在编写一个新的wp插件,并希望捕获并提交在其管理页面中提交的转发器的值,我不希望也不能使用ACF pro others,因此我已使用javascript设置了Repeater字段。使用针对不同输入类型的开关,捕获数组中转发器字段的值使事情变得有些复杂。您能否查看我的代码并让我知道如何传递这些值?谢谢。

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;
}

}

0 个答案:

没有答案