Buenas,
Tengo un sitio con una página de perfil por cada usuario, con varios campos diferentes, y varios formularios diferentes para actualizar dicha información.
Uno de los formularios es para editar solo un campo vinculado al CPT paciente, que es el status, cuando cambio el status se cambia correctamente, pero la foto de perfil del paciente se pierde, el resto de campos se mantiene perfectamente ¿a que puede deberse?
Hay unos cuantos errores conocidos en Toolset Forms relacionados a Imágenes.
Creo que Usted experiencia esto error:
https://toolset.com/errata/toolset-forms-deletes-image-postmeta-if-field-is-conditionally-hidden-in-the-form-even-if-the-field-has-a-value-saved/
En breve, cuando un campo (imagen) es escondido condicionalmente en al Form, la Form remueve la imagen cuando Usted envía el formulario.
https://toolset.com/errata/toolset-forms-deletes-image-postmeta-if-field-is-conditionally-hidden-in-the-form-even-if-the-field-has-a-value-saved/
Hay otros problemas con imágenes en Formularios:
https://toolset.com/errata/issues-with-saving-images-and-media-fields-in-toolset-forms-when-using-amazon-s3-and-cloudfront-plugins/, y https://toolset.com/errata/custom-fields-lose-their-value-if-the-page-contains-two-forms-for-the-same-post-type/
Pero sospecho que la primera Erratum es la qual affecta Su Formulario.
En caso en el Formulario no hay ninguna imagen, ni escondida condicionalmente seria un otro BUG.
In tal caso, seria necesario proveerme con una copia de Su sitio sí posible. https://toolset.com/faq/provide-supporters-copy-site/
he activado un formulario privado para proveerme con la copia en caso seria necesario.
Gracias!
Buenas,
Exactamente mi caso es como el primero, no hay solución disponible aún¿?
Puedes intentar 2 cosas:
1. Remover el campo de la imagen desde el formulario (no lo necesitas, entonces puedes removerlo)
2. En caso esto no funcione, podemos intentar a añadir el campo de vuelta a el formulario (escondido como ahora) y aplicar un Código Personalizado que escucha a la $_POST, toma el valor del campo y con un update_post_meta() añadido a cred_save_data() re-actualizar el Post en la base de datos.
Un ejemplo:
https://pastebin.com/2BTbVbcs
function my_save_data_action($post_id, $form_data){
// Change your CRED Form "ID" accordingly below
if ($form_data['id']==ID){
//Get Image field value
$image_field = $_POST["exact_wpcf_slug"];//Ponga la SLUG exacta de su campo con imagen aquí
update_post_meta($post_id, 'exact_wpcf_slug', $image_field);
}
}
add_action('cred_save_data', 'my_save_data_action',10,2);
Con el código encima sacas el valor de el campo escondido desde el formulario $_POST y lo pones en el campo con la función WordPress update_post_meta
https://codex.wordpress.org/Function_Reference/update_post_meta
cred_save_data assegura que el código executa cuando el formulario es enviado.
https://toolset.com/documentation/programmer-reference/cred-api/#cred_save_data
En caso esto no funciona, intenta el mismo código un poco mas tarde en la "vida" de el formulario, por ejemplo con https://toolset.com/documentation/programmer-reference/cred-api/#cred_submit_complete