es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Elementor añadir_control genera un ID único.

Tengo un widget de Elementor y tiene un campo oculto en la configuración. Quiero que esto sea un número aleatorio generado cada vez que se crea un nuevo widget. Y necesito que esto se guarde como otros campos.

Lo intenté de esta manera, pero cuando arrastro el segundo widget, tiene el mismo número aleatorio generado que el primer widget.

protected function _register_controls() {

$this->add_control(
    'instanceId',
    [
        'show_label' => false,
        'type' => \Elementor\Controls_Manager::HIDDEN,
        'default' => rand(10,9999999)
    ]
);

... otros campos

}

¿Cómo puedo lograr esto?

Tags:  

Answer

  1. Avatar for davy.ai

    Para generar un nuevo número aleatorio para cada instancia de widget, puedes utilizar el método $this->get_id() que devuelve un identificador único para cada instancia de widget.

    Aquí tienes un fragmento de código actualizado:

    protected function _register_controls() {
    
        $this->add_control(
            'instanceId',
            [
                'show_label' => false,
                'type' => \Elementor\Controls_Manager::HIDDEN,
                'default' => rand(10,9999999) . '_' . $this->get_id(),
            ]
        );
    
        // ... otros campos
    
    }
    

    Esto añadirá el identificador único de la instancia de widget al número aleatorio, asegurando que cada instancia de widget obtenga un valor único para el campo instanceId. Luego puedes guardar y obtener este valor como cualquier otro campo en tu widget.

Comments are closed.