Adakah yang bisa menjelaskan apa perbedaan antara update_user_meta
dan update_user_option
dan dalam skenario mana keduanya bisa digunakan?
Dalam istilah awam tidak ada perbedaan besar! update_user_option()
gunakan secara update_user_meta()
internal. Satu-satunya perbedaan adalah update_user_option()
awalan nama opsi dengan awalan tabel database + ID blog jika Anda berada di multisite dan hanya awalan tabel jika Anda berada di instalasi satu situs.
Lihatlah kode 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 );
}
Nama opsi Anda diawali dengan awalan tabel + ID blog (Hanya ketika ID selain 1 dan 0).
Jika Anda menetapkan parameter terakhir $global
untuk true
tidak memiliki perbedaan dengan update_user_meta()
.
Tujuan update_user_option()
fungsi
Tidak seperti tabel lainnya, WordPress tidak membuat tabel terpisah untuk usermeta untuk setiap situs. Ini menyimpan informasi pengguna dalam satu tabel usermeta untuk semua blog (dalam multisite). Itu hanya awalan nama kunci untuk setiap situs dengan blog prefix
misalnya untuk ID blog 4 wp_capabilities
disimpan sebagai wp_4_capabilities
.
Jadi, informasi apa pun yang akan Anda simpan menggunakan update_user_option()
, misalnya key_name_abc
akan menjadi wp_key_name_abc
untuk situs utama dalam multisite atau dalam instalasi situs tunggal. Di masa depan jika Anda mengonversi situs tunggal ke multisite, informasi itu hanya akan tersedia di situs utama.
Gunakan fungsi ini ketika Anda berpikir beberapa informasi tergantung pada situs + pengguna juga. Tidak suka nama, email dll karena informasi ini milik pengguna dan situs independen.
Keduanya menulis data mereka di tabel "usermeta". Opsi pengguna yang disimpan dalam tabel usermeta mempertahankan awalan tabel wordpress mis. Wp_ sedangkan meta pengguna juga disimpan dalam tabel usermeta tidak.
Opsi pengguna mendukung opsi spesifik blog, berguna untuk multisite. Meta pengguna didasarkan pada data meta spesifik pengguna id seperti informasi profil.
Parameter sebenarnya sangat berbeda. Opsi pengguna memiliki $ user_id, $ option_name, $ newvalue, $ global dan meta pengguna memiliki $ user_id, $ meta_key, $ meta_value, $ prev_value.
Berikut adalah beberapa nilai untuk opsi dan pengguna usermeta.
Pilihan
Pengguna
https://codex.wordpress.org/Function_Reference/update_user_option#Parameters
https://codex.wordpress.org/Function_Reference/update_user_meta#Parameters
Contoh halaman codex menyediakan penggunaan dunia nyata.