Así que tengo un menú desplegable dinámico en mi WPCF7. El complemento consulta la base de datos para las clases de prueba gratuitas disponibles publicadas y las coloca en el menú desplegable. Ahora me gustaría saber cómo puedo convertirlo en un campo obligatorio, de modo que cuando se valide el formulario al enviarlo, se verifique si este campo se seleccionó o no. (y muestra la etiqueta que se requiere)
Tengo este shortcode en mi formulario de contacto 7:
[select_free_trial]
Luego en mi functions.php de WordPress agregué esta función y acción:
add_action('wpcf7_init', 'add_cf7_free_trial');
function add_cf7_free_trial() {
wpcf7_add_shortcode('select_free_trial', 'select_free_trial'); }
function select_free_trial() {
$form = 'Free trial';
include('/home/pureseat/BETANGOCRM/include/db.php');
$sql= "SELECT CRM_PRODUCTS.ID, CRM_PRODUCTS.PRODUCTS_NAME, CRM_PRODUCTS.PRODUCTS_TIMING,CRM_PRODUCTS.PRODUCTS_DATES, CRM_LOCATIONS.LOCATIONS_CITY,CRM_LOCATIONS.LOCATIONS_CITY_FR, CRM_LOCATIONS.LOCATIONS_CITY_NL FROM CRM_PRODUCTS JOIN CRM_LOCATIONS ON CRM_PRODUCTS.LOCATIONS_ID=CRM_LOCATIONS.LOCATIONS_ID WHERE CRM_PRODUCTS.PRODUCTS_PUBLISHONWEBSITE=1 AND CRM_PRODUCTS.PRODUCTS_TYPE='FREE_TRIAL' order by CRM_PRODUCTS.PRODUCTS_DATES";
$result = mysqli_query($coni,$sql);
echo '<p><span class="wpcf7-form-control-wrap PRODUCTS_ID"><label> Please select *<select name="color" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false">';
echo '<option value=""></option>';
while ($row = mysqli_fetch_array($result)){
printf('<option value="%s">%s</option>', $row['ID'], $row['PRODUCTS_NAME']);
}
echo '</select></label></span></p>';
$custom_tag = ob_get_contents();
ob_end_clean();
return $custom_tag; }
Ya he agregado esto a la etiqueta del campo de selección:
class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true"
Pero esto no da como resultado una validación del campo. Creo que probablemente debería agregarlo a la validación de javascript/jquery, pero soy un poco nuevo en WordPress, así que no sé dónde hacer esto.
¿O hay una mejor manera de completar mi menú desplegable? He encontrado también algo de información aquí https://xnau.com/populate-a-form-dropdown-from-the-database/ eso agregaría un gancho al campo de selección en lugar de un código abreviado.
.