WordPress get_user_meta – User Metadata Management

WordPress get_user_meta – User Metadata, User से सम्बंधित वे Data होते हैं, जो WordPress Database के $wpdb->usermeta Table में Store होते हैं। ये किसी User से सम्बंधित Additional Information होते हैं, जिन्हें $wpdb->user Table में नहीं बल्कि $wpdb->usermeta Table में Store किया जाता।

Usermeta Table में Store होने वाले Data वास्तव में Key/Value Pair में Save होते हैं। इसलिए User से सम्बंधित किसी भी प्रकार की Additional Information को इस Table में Metadata के रूप में Store किया जा सकता है। Metadata के रूप में हम User से सम्बंधित किसी भी प्रकार के Data को Store कर सकते हैं।

उदाहरण के लिए User की Location (City, State, Country), Phone Number, Mobile Number Site Related Personal Settings आदि से सम्बंधित विभिन्न Information को हम User के Metadata के रूप में इस Table में Store कर सकते हैं।

add_user_meta() API Function

जब हमें किसी नए User Metadata को $wpdb->metadata Table में Save करना होता है, तब हम WordPress द्वारा Provided इस API Function को Use करते हैं। जिसका Syntax निम्नानुसार होता है:

add_user_meta( $user_id, $meta_key, $meta_value, $unique );

इस API Function में:

$user_id Parameter के रूप में उन User का ID Specify करना होता है, जिसके लिए usermeta Table में नया Metadata Store किया जा रहा होता है।
$meta_key Parameter के रूप में एक Key को Specify किया जाता है, जो कि usermeta Table में Store होने वाली Metadata Value के साथ Associated होता है।
$meta_value Parameter के रूप में उस Value को Specify किया जाता है, जिसे metadata Table में $meta_key के साथ Associate करना होता है।
$unique Parameter के रूप में true/false Value को Specify करते हुए ये तय किया जाता है कि Specified $meta_key, usermeta Table में Unique रहेगा या समान Key से Multiple Values को Associate किया जा सकता है। सामान्‍यत: इसका Default मान false होता है, जो समान Key से Multiple Values को Associate करने की सुविधा देता है। जैसे:

add_user_meta( 1, ‘ebooks’, ‘C Programming Language in Hindi’, false );
add_user_meta( 1, ‘ebooks’, ‘C++ Programming Language in Hindi’, false );
add_user_meta( 1, ‘ebooks’, ‘Java Programming Language in Hindi’, false );

इन Statements द्वारा usermeta Table में कुल तीन Records Create होंगे और तीनों ही Records उस User के Metadata के रूप में usermeta Table में Store होंगे, जिसका User ID 1 है।

हम देख सकते हैं कि तीनों ही Statements में $meta_key का मान “ebooks” है लेकिन तीनों ही Records में Value के रूप में एक अलग Book का नाम Specify किया गया है। हम एक ही Key के साथ Multiple Values को इसलिए Associate कर सकते हैं, क्योंकि तीसरे Parameter के रूप में हमने false मान Specify किया है।

जबकि यदि हम इस तीसरे Parameter का मान true कर दें, तो एक Key के साथ केवल एक ही Value को Associate किया जा सकता है। परिणामस्वरूप यदि हम तीसरे Parameter का मान true Set करते हुए उपरोक्त Statements को निम्नानुसार Specify करें:

add_user_meta( 1, ‘ebooks’, ‘C Programming Language in Hindi’, false );
add_user_meta( 1, ‘ebooks’, ‘C++ Programming Language in Hindi’, false );
add_user_meta( 1, ‘ebooks’, ‘Java Programming Language in Hindi’, false );

तो पहला Statement Normal तरीके से Run होगा, लेकिन बाद के दोनों Statements के Execution के दौरान Error Generate होगा। क्योंकि तीसरे Parameter के true होने की स्थिति में एक Key के साथ एक ही Value को Associate किया जा सकता है।

Return Value के रूप में ये API Function Newly Create होने वाले Meta Key Record के Primary Key यानी ID को Return करता है, जबकि Successfully Run न होने की स्थिति में ये API Function false Return करता है।

इस प्रकार से यदि हम इस API Function को अपने पिछले Plugin में ही निम्नानुसार Use करें:

<?php
/*
 *Plugin Name: User API
 *Plugin URI: https://www.bccfalna.com/wpplugins/user-api/
 *Description: Learning User API 
 *Author: Kuldeep Chand
 *Version: 1.0
 *Author URI: https://www.bccfalna.com/
 */
 
add_shortcode('UserAPI', 'user_api' );
function user_api() {
	if(false !== add_user_meta( 1, 'ebooks', 'C Programming Language in Hindi', false ))
		echo "User Meta Added Successfully.<br>";
	if(false !== add_user_meta( 1, 'ebooks', 'C++ Programming Language in Hindi', false ))
		echo "User Meta Added Successfully.<br>";
	if(false !== add_user_meta( 1, 'ebooks', 'Java Programming Language in Hindi', false ))
		echo "User Meta Added Successfully.<br>";
}

तो इस Modified Plugin को Activate करके Run करने पर WordPress Database की usermeta Table में निम्नानुसार तीन नए Records Add हो जाते हैं:

WordPress get_user_meta - User Metadata Management in Hindi

get_user_meta() API Function

जब हम usermeta Table में Stored किसी User Data को Access करना चाहते हैं, तब इस जरूरत को पूरा करने के लिए हम get_user_meta() API Function को Use कर सकते हैं। इस API Function Signature निम्नानुसार होता है:

get_user_meta( $user_id, $meta_key, $single );

इस API Function में:

$user_id Parameter के रूप में उन User का ID Specify करना होता है, जिसके usermeta Table में नया Metadata को Access करना होता है।
$meta_key Parameter के रूप में एक Key को Specify किया जाता है, जिससे Associated Metadata Value को Access करना होता है।
$single Parameter के रूप में एक Boolean Value द्वारा हम ये तय करते हैं कि Return होने वाला मान एक Single Value के रूप में Return होगा या Multiple Values के एक Array के रूप में Return होगा।

जब हम इस Parameter के रूप में false Specify करते हैं अथवा जब हम इस तीसरे Parameter को Specify ही नहीं करते, तब उस स्थिति में हमें Return Value के रूप में एक Array प्राप्त होता है। जबकि true Specify करने पर हम Single Value Retrieve करते हैं।

हालांकि यदि इस Parameter के रूप में true Specified हो, लेकिन जिस $meta_key को Retrieve किया जाना हो, वह usermeta Table में Exist ही न हो, तो उस स्थिति में ये API Function एक Empty Array Return करता है।

इस API Function को Use करते हुए हम हमारे पिछले Example Plugin को ही निम्नानुसार Modify कर सकते हैं, जो पिछले Section में Add किए गए Metadata को Retrieve करके Display करने का काम कर रहा है:

<?php
/*
 *Plugin Name: User API
 *Plugin URI: https://www.bccfalna.com/wpplugins/user-api/
 *Description: Learning User API 
 *Author: Kuldeep Chand
 *Version: 1.0
 *Author URI: https://www.bccfalna.com/
 */
 
add_shortcode('UserAPI', 'user_api' );
function user_api() {
	/* Get the user’s ebooks. */
	$ebooks = get_user_meta( 1, 'ebooks', false );
	
	/* Check if there are any ebooks. */
	if ( !empty( $ebooks ) ) {
		/* Open an unordered list. */
		echo '<ul class="ebooks">';

		/* Loop through each of the books. */
		foreach ( $ebooks as $book ) {
			/* Display the book name. */
			echo '<li>' . $book . '</li>';
		}
	}
}

जैसाकि इस Plugin Code में हम देख सकते हैं कि हमने निम्नानुसार तरीके से get_user_meta() API Function को Use किया है:

    $ebooks = get_user_meta( 1, ebooks, false );

जो usermeta Table से उस User के “ebooks” नाम की $meta_key के साथ Associated Metadata Value को Retrieve करता है, जिसका ID 1 है। साथ ही तीसरे Parameter के रूप में false मान Specified होने की वजह से ये API Function समान $meta_key के साथ Associated Multiple Meta Values का एक Array Return करता है, जिसे इस Plugin Code में $ebooks नाम के Array में Hold किया जाता है और इस Array में Stored Values को एक Loop द्वारा Display कर दिया जाता है। परिणामस्वरूप हमें निम्नानुसार Output प्राप्त होता है:

WordPress get_user_meta - User Metadata Management in Hindi

लेकिन यदि हम इस तीसरे Parameter के रूप में true मान Specify कर दें, तो उस स्थिति में ये API Function, Specified $meta_key के साथ Associated केवल एक Single Value ही Return करता है।

हालांकि इस API Function को Use करते समय यदि हम केवल पहले Parameter को ही Specify करें, शेष दोनों Parameters को Blank छोड दें, तो Specified User ID वाले User से Associated सभी $meta_key एक Array के रूप में Return हो जाते हैं। जैसे:

    $all_user_metas = get_user_meta( 1 );

ये Statement User ID 1 वाले User के सभी Metadata को $all_user_metas नाम के Array में Store कर देगा।

Read more…

update_user_meta() API Function
delete_user_meta() API Function
get_the_author_meta() API Function

WordPress User Data - Management
WordPress Roles and Capabilities - Default and Custom

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE