¿Alguien puede explicar cuál es la diferencia entre update_user_meta
y update_user_option
y en qué escenarios se pueden usar ambos?
¿Alguien puede explicar cuál es la diferencia entre update_user_meta
y update_user_option
y en qué escenarios se pueden usar ambos?
En términos sencillos, no hay una gran diferencia. update_user_option()
usa update_user_meta()
internamente. La única diferencia es que el prefijo update_user_option()
es el nombre de la opción con el prefijo de la tabla de la base de datos + el ID del blog si está en un sitio múltiple y solo el prefijo de la tabla si está en la instalación de un solo sitio.
Echa un vistazo al código de update_user_option()
/**
* Update user option with global blog capability.
*
* User options are just like user metadata except that they have support for
* global blog options. If the 'global' parameter is false, which it is by default
* it will prepend the WordPress table prefix to the option name.
*
* Deletes the user option if $newvalue is empty.
*
* @since 2.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $user_id User ID.
* @param string $option_name User option name.
* @param mixed $newvalue User option value.
* @param bool $global Optional. Whether option name is global or blog specific.
* Default false (blog specific).
* @return int|bool User meta ID if the option didn't exist, true on successful update,
* false on failure.
*/
function update_user_option( $user_id, $option_name, $newvalue, $global = false ) {
global $wpdb;
if ( !$global )
$option_name = $wpdb->get_blog_prefix() . $option_name;
return update_user_meta( $user_id, $option_name, $newvalue );
}
El nombre de tu opción tiene el prefijo prefijo de tabla + ID de blog (solo cuando la ID es distinta de 1 y 0).
Si establece el último parámetro $global
en true
, no tendrá ninguna diferencia con update_user_meta()
.
Propósito de la función update_user_option()
A diferencia de otras tablas, WordPress no crea una tabla separada para usermeta para cada sitio. Guarda la información del usuario en una tabla de usermeta para todos los blogs (en varios sitios). Simplemente prefija el nombre de la clave para cada sitio con blog prefix
e.g. para el ID de blog 4 wp_capabilities
se almacena como wp_4_capabilities
.
Por lo tanto, cualquier información que guarde utilizando update_user_option()
, por ejemplo, key_name_abc
se convertirá en wp_key_name_abc
para el sitio principal en instalaciones de sitios múltiples o en sitios únicos. En el futuro, si convierte su sitio único a varios sitios, la información estará disponible solo en el sitio principal.
Utilice esta función cuando crea que también se depende cierta información del sitio + usuario. No como nombre, correo electrónico, etc. porque esta información pertenece al usuario y al sitio independiente.
Ambos escriben sus datos en la tabla "usermeta". Las opciones de usuario almacenadas en la tabla de usermeta conservan el prefijo de tabla de wordpress, por ej. wp_ mientras que la meta del usuario también almacenada en la tabla de usermeta no lo hace.
Las opciones de usuario admiten opciones específicas del blog, útiles en multisitio. La meta del usuario se basa en los metadatos específicos del ID de usuario, como la información del perfil.
Los parámetros son bastante diferentes de hecho. La opción de usuario tiene $ user_id, $ option_name, $ newvalue, $ global y el usuario meta tiene $ user_id, $ meta_key, $ meta_value, $ prev_value.
Aquí hay algunos valores para ambas opciones y usuario usermeta.
Opciones
Usuario
Los ejemplos de páginas de códice proporcionan un uso en el mundo real.