Pregunta sobre Participants Database de Wordpress:

Menú desplegable múltiple seleccionado con datos de población

Un usuario preguntó 👇

He utilizado el menú desplegable seleccionado y pensé que movería la pregunta al foro.

Aquí está mi código completo …

/**
 * Plugin Name: Participants Database - Populate Custom Chosen Dropdown
 * Description: tests loading a chosen element with options
 *
 * sets our function to be called when the pdbcde-before_element_rendered action 
 * is triggered by the form just before the "Chosen Dropdown" is shown so we can 
 * change the list of options to show
 */
 
// attach our function to the pdbcde-before_element_rendered action
add_action( 'pdbcde-before_element_rendered', 'xnau_set_specialty_dropdown_options');
/**
 * sets the options for the "specialty" dropdown
 *
 * @global wpdb $wpdb
 * @param PDb_FormElement object $field the current field
 */
function xnau_set_specialty_dropdown_options ( $field )
{
  // this is the name of the field we want to add options to
  $fieldname = 'team';
 
  if ( $field->name === $fieldname ) :  // check for our dropdown field
  
  global $wpdb; // grab the db helper object
  
  /*
   * define the query for getting the list saved specialties
   * 
   * note that the $wpdb->prefix method is used to get the table 
   * prefix; this is so it will work on all WP installs
   */
  $query = '
    SELECT first_name,last_name,job_category,record_slug
    FROM <code>' . $wpdb->prefix . 'participants_database</code> 
    WHERE job_category NOT LIKE "%staff%"
  ';
	
  // now execute the query and get the results
  $raw_names = $wpdb->get_results( $query );
  
  /*
   * now expand the result array into an array for the options property of the dropdown
   */
  $options = array();

  foreach ( $raw_names as $record ) {
	  if ($record->job_category == 'faculty') : $options[] = $record->first_name.' '.$record->last_name.' (Faculty)'; 
	  elseif ($record->job_category == 'staff') : $options[] = $record->first_name.' '.$record->last_name.' (Staff)';
	  elseif ($record->job_category == 'researcher') : $options[] = $record->first_name.' '.$record->last_name.' (Researcher)';
	  elseif ($record->job_category == 'student') : $options[] = $record->first_name.' '.$record->last_name.' (Graduate Student)'; endif;
  }
  
  // now set the field object with the new options list
  $field->options = $options;
  
  endif;
}

Ahora, para repetir mi problema, está ingresando mis datos con precisión, pero cuando guardo mis cambios y vuelvo al otoño pasado, fusiona mis opciones en una

etiqueta. ¡Por favor ayuda y gracias!

(@xnau)

Hace 1 año, 6 meses

al principio, tags don't belong in php code. This is for the benefit of anyone who might try to copy your code.

Un problema fundamental con su enfoque es que le está proporcionando al usuario opciones que no son opciones definidas para el campo «equipo». Si bien puede hacer esto con una opción, no puede hacerlo con varias opciones, se combinarán en un solo valor. Esto se debe a que un dominio multilingüe / otro solo puede tener un valor «otro».

Lo que tiene que hacer es un poco más complicado porque necesita una forma de guardar los nombres de los equipos en la definición del campo como opciones, luego sus usuarios pueden elegir varios nombres. Puede hacer esto manualmente o darle un código personalizado automáticamente.

(@rcarmichael)

Hace 1 año, 6 meses

Excusa. En realidad, no había etiquetas en mi código, pero había marcas que me hacen pensar que estoy comenzando y terminando el código, cuando en realidad no es así. Publiqué una continuación de mi problema aquí porque su sitio web tiene limitaciones. Entendí que al traerlo aquí podría explicar mejor mi pregunta.

Ahora…. mi lucha es tratar de descubrir su plugin. Incluso antes de ayer me di cuenta de que tengo que poner valores en las entradas. Pero es bastante complicado. Solo esperaba que tuvieras una situación así y que pudieras ofrecer más consejos. En este punto en particular, me estoy quedando sin tiempo y no puedo jugar con esto por mucho más tiempo. Desafortunadamente, eso significa que tendré que recurrir a una forma menos conveniente de agregar personal, pero al menos funcionará por el momento.

Si no tiene más consejos, cerraré este hilo. Gracias por tu ayuda.

(@rcarmichael)

Hace 1 año, 6 meses

Clausura. Gracias.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.