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?
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:
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.