Lo siento si esto ya está respondido aquí. Miré a mi alrededor y no pude ver ninguna respuesta a mi pregunta, así que pensé en publicar la mía.
Estoy creando un complemento para un cliente que recopila los comentarios de los clientes sobre un proyecto reciente que se ha completado.
El administrador usaría el sistema para enviar un "aviso" al cliente pidiéndole sus comentarios con un enlace a un formulario en el sitio.
He creado un tipo de publicación personalizada llamada "customer_prompts" que solo tiene un campo de título y algunos campos personalizados que se almacenan en una tabla de base de datos personalizada, no en la meta meta.
Abajo está mi código para la acción save_post. Parece que cuando presiono publicar, no activa la acción save_post y solo guarda el valor del título en wp_posts.
add_action('save_post', 'save_prompt');
function save_prompt($post_id){
$post = get_post($post_id);
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( 'customer_prompt' == $_POST['post_type'] )
{
if ( !current_user_can( 'edit_page', $post_id ) )
return;
}
else
{
if ( !current_user_can( 'edit_post', $post_id ) )
return;
}
global $wpdb;
$prompt_id = com_create_guid();
$customer_feedback_name = $_POST['_sdg_customer_feedback_name'];
$customer_feedback_email = $_POST['_sdg_customer_feedback_email'];
$salesperson = $_POST['_sdg_salesperson'];
$values = array(
'id' => $prompt_id,
'sdg_customer_name' => $customer_feedback_name,
'sdg_customer_email' => $customer_feedback_email,
'sdg_salesperson' => $salesperson,
'sdg_post_id' => $post->id
);
$insert = $wpdb->insert($table_name, $values);
if($insert) {
mail($customer_feedback_email, 'hello', 'hello');
}
}
Cualquier ayuda sería muy apreciada ya que no puedo averiguar qué está pasando aquí.
Gracias, Jamie.