Jak skrýt specifické objednávky pro uživatele v administraci - Affinite.io CZ

V případě, že se v administraci e-shopu pohybuje více lidí, musíte v ně mít důvěru, nebo jim omezovat to co vidí a mohou zobrazit. A do toho mohou patřit i specifické objednávky.

Uvažujme, že prodáváme například velmi specifické produkty, u nichž je příprava vychystání objednávky svěřena různým lidem. Takže uživatel A, se má věnovat objednávkám, v kterých je zboží, které má na starosti a ostatní nepotřebuje vidět.

Tento snippet jako takový neřeší označení objednávky pro určitého uživatele, protože to je mimo rámec tohoto článku. Pro představu, při vytvoření objednávky si někdo koupí vodní skůtr a vy do databáze zapíšete custom field, který označí, že tuto objednávku vyřizuje Karel. Ten by tak měl vidět jen své objednávky.

Pro testování si tedy k objednávce přidáme specifické post meta:

Když se Karel přihlásí do administrace, vidí všechny objednávky:

Pro omezení zobrazení, použijeme akci pre_get_posts:

if ( is_admin() ) {

	add_action('pre_get_posts', 'musilda_hide_orders' );
	function musilda_hide_orders( $query ) {

		$current_screen = get_current_screen();

		if ( 'edit-shop_order' == $current_screen->id ) {

			$user_id = get_current_user_id();

			if ( 1 == $user_id ) {

				$meta_query = $query->get( 'meta_query' );
				if ( is_array( $meta_query ) ) {
					$meta_query[] = array(
						'key'    =>'user_name',
						'value'  =>'Karel',
						'compare'=>'='
					);
				} else {
					$meta_query = array(
						array(
							'key'    =>'user_name',
							'value'  =>'Karel',
							'compare'=>'='
						)
					);
				}
				$query->set( 'meta_query', $meta_query );

			}

		}

		return $query;

	}

}

Nejprve si ověřím, že jde o adminsitraci, pak si ověříme, zda se nacházíme na výpisu objednávek, ověříme, že jde o správného uživatele a pak upravíme meta query.

Podmínky při úpravě meta query je nezbytná, protože meta query již může existovat a pak jej rozšiřujete.

Výsledek:

A Karel vidí jen jednu (svoji) objednávku.

Mimochodem, takto zjednodušeně fungují multi vendor pluginy.

Jak přidat vlastní položku do hromadných akcí produktů
Jak přidat vlastní položku do hromadných akcí produktů
20 Lis, 2021
Black friday pro Elementor a jeho rozšíření
Black friday pro Elementor a jeho rozšíření
22 Lis, 2021

Looking for something?