Сохранение встроенного редактирования не работает в нескольких ретрансляторахPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сохранение встроенного редактирования не работает в нескольких ретрансляторах

Сообщение Anonymous »

Код представляет собой простой виджет. Здесь я только что добавил два повторителя с текстовым элементом управления, который я хочу редактировать в строке. Теперь в виджете встроенное редактирование работает нормально, но его невозможно сохранить.
Но когда я использую только один повторитель, тогда встроенное редактирование и сохранение отлично работают.
Теперь я использовал этот add_inline_editing_attributes для встроенного редактирования. Итак, что мне делать, чтобы сохранить встроенный текст редактирования для двух повторителей?
protected function register_controls() {
$this->start_controls_section(
'content_section',
[
'label' => esc_html__( 'Test Plugin', 'test-plugin-td' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
]
);

$repeater = new Repeater();
$repeater->add_control(
'text',
[
'label' => __( 'Business Hour', 'test-plugin-td' ),
'type' => \Elementor\Controls_Manager::TEXT,
'label_block' => true,
'placeholder' => __( 'First Name', 'test-plugin-td' ),
'default' => __( 'First Name', 'test-plugin-td' ),
'dynamic' => [
'active' => true,
],
]
);
$this->add_control(
'business_hours',
[
'label' => __( 'Test Plugin', 'test-plugin-td' ),
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => [
[
'text' => __( 'First Name', 'test-plugin-td' ),
],
[
'text' => __( 'Last Name', 'test-plugin-td' ),
],
],
'title_field' => '{{{ text }}}',
]
);

$this->end_controls_section();

$this->start_controls_section(
'content_2section',
[
'label' => esc_html__( 'Test Plugin', 'test-plugin-td' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
]
);

$repeskeater = new Repeater();
$repeskeater->add_control(
'text2',
[
'label' => __( 'Business Hour', 'test-plugin-td' ),
'type' => \Elementor\Controls_Manager::TEXT,
'label_block' => true,
'placeholder' => __( 'First Name', 'test-plugin-td' ),
'default' => __( 'First Name', 'test-plugin-td' ),
'dynamic' => [
'active' => true,
],
]
);
$this->add_control(
'business_2hours',
[
'label' => __( 'Test Plugin', 'test-plugin-td' ),
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => $repeskeater->get_controls(),
'default' => [
[
'text' => __( 'First Name', 'test-plugin-td' ),
],
[
'text' => __( 'Last Name', 'test-plugin-td' ),
],
],
'title_field' => '{{{ text2 }}}',
]
);

$this->end_controls_section();
}

protected function render() {
$settings = $this->get_settings_for_display();
echo '
  • ';
    foreach ( $settings['business_hours'] as $index => $item ) :
    $text_key = $this->get_repeater_setting_key( 'text', 'business_hours', $index );
    $this->add_inline_editing_attributes( $text_key );
    ?>
  • >
  • >





    Подробнее здесь: https://stackoverflow.com/questions/792 ... e-repeater
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»