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.

WPForms: Menú desplegable condicional basado en la etiqueta de entrada de Meta_Key previamente creada por el usuario.

Estoy usando Ultimate Member para el registro donde los usuarios pueden ingresar un nombre de tienda al crear una nueva cuenta.

Eso funciona bien y cuando voy a su perfil puedo ver que el meta_key está presente.

Pero más adelante, en el formulario de carga, necesito agregar un menú desplegable donde WPForms pueda leer ese meta_key y permitir al usuario elegir entre las opciones de meta_key de Storeo Name al cargar algo.

¿Se puede hacer esto en la taxonomía? Ya que sería la mejor práctica para esta solución.

El usuario crea un nuevo nombre de tienda bajo la taxonomía “Tiendas” y luego puede acceder a ellos desde las opciones dinámicas del menú desplegable de WPForms. La cosa es que solo podría elegir el nombre de la tienda que envió y no los demás en el sitio.

Espero estar siendo claro con mis dudas.

¡Gracias de antemano a esta gran comunidad!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución propuesta para utilizar Ultimate Member con WPForms

    El usuario actualmente está utilizando el plugin Ultimate Member para WordPress con un formulario de registro donde los usuarios pueden ingresar un nombre de tienda. Al crear una nueva cuenta, se guarda la clave meta del nombre de la tienda en el perfil del usuario.

    Más adelante, cuando los usuarios carguen algo, el usuario quiere agregar un menú desplegable en WPForms que permita a los usuarios elegir la clave meta de su nombre de tienda. Se le propone al usuario una solución en la que puede crear una taxonomía personalizada llamada “Tiendas”, bajo la cual los usuarios pueden crear nuevos nombres de tienda.

    Crear una taxonomía personalizada

    El primer paso es crear una taxonomía personalizada llamada “Tiendas”. Al crear una taxonomía personalizada, los usuarios pueden crear nuevos nombres de tienda y acceder a ellos desde la lista desplegable de WPForms. Solo se mostrarán los nombres de tienda enviados en la lista desplegable de WPForms, y no otras tiendas del sitio.

    En WordPress, vaya al archivo “functions.php” y pegue el siguiente código:

    function create_stores_taxonomy() {
        register_taxonomy(
            'stores',
            'user',
            array(
                'labels' => array(
                    'name' => 'Tiendas',
                    'add_new_item' => 'Agregar nueva tienda',
                    'new_item_name' => "Nuevo nombre de tienda"
                ),
                'show_ui' => true,
                'show_tagcloud' => false,
                'hierarchical' => true,
                'query_var' => true,
                'rewrite' => array( 'slug' => 'stores' ),
            )
        );
    }
    add_action( 'init', 'create_stores_taxonomy', 0 );
    

    Este código crea una nueva taxonomía llamada “Tiendas” con casillas de verificación jerárquicas. También registra “stores” como una taxonomía para el tipo de publicación “user”.

    Ahora, el usuario puede crear nuevos nombres de tienda yendo al panel de control de WordPress > “Tiendas” > “Agregar nuevo”.

    Mostrar nombres de tiendas en el menú desplegable de WPForms

    Para mostrar los nombres de tiendas en el menú desplegable de WPForms, el usuario puede utilizar el siguiente código:

    add_filter( 'wpforms_field_choices', function( $choices, $field, $form_data ) {
        if ( $field['key'] === 'store_name' ) {
            $user_id = get_current_user_id();
            $stores = get_the_terms( $user_id, 'stores' );
            if ( $stores && ! is_wp_error( $stores ) ) {
                foreach ( $stores as $store ) {
                    $choices[] = [
                        'label' => $store->name,
                        'value' => $store->name
                    ];
                }
            }
        }
        return $choices;
    }, 10, 3 );
    

    Este código filtra y modifica las opciones del campo de WPForms en tiempo de ejecución. Si $field['key'] coincide con “store_name”, recupera la taxonomía “stores” asociada al usuario actual y muestra los nombres en la lista desplegable.

    Con este código implementado, el usuario ahora puede seleccionar su nombre de tienda en el menú desplegable de WPForms cuando carguen algo, limitando la selección solo a sus nombres de tienda.

Comments are closed.