0

im doing a custom form to save a CPT with a custom taxonomy using ajax, everything saves fine but the custom taxonomy doesn't

I tried my code to save the CPT using only php and the taxonomy save without any problem

The select i use is

<select name="cat-servicios" class="cat-servicios">
   <option disabled value="">Seleciona una categoría</option>
   <?php foreach($terms_categorias as $term): ?>
       <option value="<?php echo esc_attr($term->slug); ?>"><?php echo esc_html($term->name); ?></option>
   <?php endforeach; ?>
</select>

In my function to save the CT i use

    wp_set_post_terms($post_id,array($_POST['cat-servicios']),'categorias_servicios',true);

When i made a console.log of the value cat_services the input is correct but still doesn't save anything i also tried to use $('.cat-servicios :selected').val(); but i get the same error

$('#btn-click').on('click', function(){
        var cat_servicios = $('.cat-servicios').find(':selected').val();
        console.log(cat_servicios);
        var nombre_empresa = $('#nombre_empresa').val();
        var creacion_empresa = $('#creacion_empresa').val();
        var nit_empresa = $('#nit_empresa').val();
        var pagina_empresa = $('#pagina_empresa').val();
        var no_empleados = $('#no_empleados').val();
        var post_image = $('#post_image').val();
        var pd_empresa = $('#pd_empresa').val();
        var tempresa = $('#tempresa').val();
        var cl_empresa = $('.cl_empresa').val();
        var descripcion_empresa = $('#descripcion_empresa').val();
        var certificaciones_empresa = $('#certificaciones_empresa').val();
        var areas_empresa = $('#areas_empresa').val();
        var dep_empresa = $('.dep-empresas:selected').val();
        var mun_empresa = $('.mun-empresas:selected').val();
        var direccion_empresa = $('#direccion_empresa').val();
        var nombre_contacto = $('#nombre_contacto').val();
        var correo_elec1 = $('#correo_elec1').val();
        var correo_elec2 = $('#correo_elec2').val();
        var nro_tlf1 = $('#nro_tlf1').val();
        var nro_tlf2 = $('#nro_tlf2').val();

        $.ajax({
            type:'POST',
            url : ajax_object.ajaxurl,
            data: {
                action:'themedomain_post_if_submitted',
                cat_servicios:cat_servicios,
                nombre_empresa:nombre_empresa,
                creacion_empresa:creacion_empresa,
                nit_empresa:nit_empresa,
                pagina_empresa:pagina_empresa,
                no_empleados:no_empleados,
                pd_empresa:pd_empresa,
                post_image:post_image,
                tempresa:tempresa,
                cl_empresa:cl_empresa,
                descripcion_empresa:descripcion_empresa,
                certificaciones_empresa:certificaciones_empresa,
                areas_empresa:areas_empresa,
                dep_empresa:dep_empresa,
                mun_empresa:mun_empresa,
                direccion_empresa:direccion_empresa,
                nombre_contacto:nombre_contacto,
                correo_elec1:correo_elec1,
                correo_elec2:correo_elec2,
                nro_tlf1:nro_tlf1,
                nro_tlf2:nro_tlf2,
            },   
            success: function(response){
                $(".success_msg").css("display","block");
                $("#new_post").hide();
            }, error: function(data){
                $(".error_msg").css("display","block");   
            }
        });
        
    });

1 Answer 1

0

You have passed incorrect name($_POST key) in the function. Please use below code for saving the taxonomy:

wp_set_post_terms($post_id,array($_POST['cat_servicios']),'categorias_servicios',true);

You passed cat-servicios instead of cat_servicios

Thanks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.