קטגוריות
הרחבות לווקומרס

הגבלת פוסטים למשתמש

איך להחריג משתמש מסוים מחוקים המוחלים על סוג פוסט מסוים?
עדכן את סוג הפוסט וה-id של המשתמש:

add_filter( 'upl_query', 'upl_unrestrict_user' );
function upl_unrestrict_user( $args ) {
	$post_type = 'post';
	$user_id = 12;
	if ( $post_type === $args['post_type'] && $user_id === $args['author'] ) {
		$args['post_type'] = 'none';
	}
	return $args;
}

איך לגרום לחוקים המוחלים על סוג פוסט מסוים להגביל את סך כל הפוסטים באתר?
עדכן את סוג הפוסט:

add_filter( 'upl_query', 'upl_limit_total_posts' );
function upl_limit_total_posts( $args ) {
	$post_type = 'post';
	if ( $post_type === $args['post_type'] ) {
		$args['author'] = '';
	}
	return $args;
}

איך לגרום לחוקים המוחלים על סוג פוסט מסוים להגביל לפי מספר הפוסטים הנמצאים בקטגוריה מסוימת בלבד?
עדכן את סוג הפוסט ואת ה-id של הקטגוריה (וודא שהמשתמשים אינם יכולים לשנות את קטגוריות הפוסטים):

add_filter( 'upl_query', 'upl_specific_category' );
function upl_specific_category( $args ) {
	$post_type = 'post';
	$category_id = 4;
	if ( $post_type === $args['post_type'] ) {
		$args['cat'] = $category_id;
	}
	return $args;
}

איך לגרום לחוקים המוחלים על סוג פוסט מסוים להגביל פוסטים בסטטוס מסוים?
עדכן את סוג הפוסט ואת הסטטוס של הפוסטים (וודא שהמשתמשים אינם יכולים לשנות את קטגוריות הפוסטים):

add_filter( 'upl_query', 'upl_specific_post_status' );
function upl_specific_post_status( $args ) {
	$post_type = 'post';
	$post_status = [ 'any' ];
	if ( $post_type === $args['post_type'] ) {
		$args['post_status'] = $post_status;
	}
	return $args;
}

איך לשנות את המחזוריות של חוקים המוחלים על סוג פוסט מסוים?
עדכן את סוג הפוסט ואת המחזוריות (שים לב כי השינוי לא יילקח בחשבון במקומות בהם מוצג התאריך):

add_filter( 'upl_query', 'upl_modify_cycle' );
function upl_modify_cycle( $args ) {
	$post_type = 'post';
	$cycle = '3 days ago';
	if ( $post_type === $args['post_type'] ) {
		$args['date_query']['after'] = $cycle;
	}
	return $args;
}

איך לשלוח למשתמשים אימייל שמעודד אותם לרכוש מנוי כאשר הם מנסים ליצור פוסטים לאחר חריגה ממגבלת הפוסטים?
הצמד את קוד שליחת אימיילים שלך להוק upl_limit_applied.

איך להגדיר סוגי הודעה שונים לכל משתמש?
השתמש בפילטרים upl_message ו-upl_notice.

איך להוסיף חוק דרך קוד?
עדכן את תפקיד המשתמש, סוג הפוסט, ההגבלה והמחזוריות:

$role = 'author';
$type = 'post';
$limit = '2';
$cycle = 'day';
$formatted_cycle = '1 ' . $cycle . ' ago';
$role_option = get_option( 'upl_user_role' );
$type_option = get_option( 'upl_posts_type' );
$limit_option = get_option( 'upl_num_limit' );
$period_option = get_option( 'upl_period' );
array_push( $role_option, $role );
array_push( $type_option, $type );
array_push( $limit_option, $limit );
array_push( $period_option, $formatted_cycle );
update_option( 'upl_rules_count', get_option( 'upl_rules_count' ) + 1 );
update_option( 'upl_user_role', $role_option );
update_option( 'upl_posts_type', $type_option );
update_option( 'upl_num_limit', $limit_option );
update_option( 'upl_period', $period_option );

איך לשנות את ההגבלה בכל החוקים המוחלים על תפקיד משתמש מסוים דרך קוד?
עדכן את תפקיד המשתמש ואת ההגבלה:

for ( $i = 0; $i < get_option( 'upl_rules_count' ); $i++ ) {
	$role = 'subscriber';
	$limit = '3';
	if ( $role === get_option( 'upl_user_role' )[ $i ] ) {
		$limit_option = get_option( 'upl_num_limit' );
		$limit_option[ $i ] = $limit;
		update_option( 'upl_num_limit', $limit_option );
	}
}

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *