Closed bbbiiiaaa closed 4 years ago
...podría quedar algo así:
/**
* Guarda el valor del metabox
*/
public function CltvoSaveMetaValue(){
add_action( 'save_post', function($id){
if( $this->CltvoValidateBeforeSave($id) ) {
update_post_meta( $id, get_called_class() , $_POST[ get_called_class() ] );
}
});
}
/**
* Hace las validaciones necesarias antes de efectivamente guarda los meta datos.
*/
public function CltvoValidateBeforeSave($id){
if( !current_user_can('edit_post', $id) ) return false;
if( defined('DOING_AUTOSAVE') AND DOING_AUTOSAVE ) return false;
if( wp_is_post_revision($id) OR wp_is_post_autosave($id) ) return false;
// Aquí pondría el Nonce.
if( !isset( $_POST[ get_called_class() ] ) ) return false;
return true;
}
}
ya quedo el cambio pero no creo que sirva de algo utilizar los nonce en esta parte, ya que estamos salvando por medio del save post de wp
finalmente quedo así
/**
* guarda el valor del metabox
*/
final public function CltvoSaveHook(){
add_action( 'save_post', function($id){
if( !current_user_can('edit_post', $id) ) return $id;
if( defined('DOING_AUTOSAVE') AND DOING_AUTOSAVE ) return $id;
if( wp_is_post_revision($id) OR wp_is_post_autosave($id) ) return $id;
// ---------------------- salva el meta box ----------------------
if( isset( $_POST[ get_called_class() ] ) ) {
$this->CltvoSaveMetaValue($id);
}
} ); // guarda el valor de las metabox
}
/**
* Hace las validaciones necesarias antes de efectivamente guarda los meta datos.
*/
public function CltvoSaveMetaValue($id){
update_post_meta( $id, get_called_class() , $_POST[ get_called_class() ] );
}
Creo que esto debería ser un método separado:
Así podríamos sobre escribir el método CltvoSaveMetaValue, pero que siempre se validen esos datos.
Además como parte de la validación del guardado de la info deberíamos hacer uso de los "Nonces" de WP: https://codex.wordpress.org/WordPress_Nonces