Richard Polák logo

V uživatelském účtu je k dispozici přehled objednávek. V detailu objednávky se pak pod každou položkou zobrazí i související metafieldy. To není příliš žádoucí a lze tomu zabránit.

V adresáři pluginu Woocommerce v podadresáři includer najděte soubor wc-template-functions.php. Z něho zkopírujte funkci wc_display_item_meta do souboru functions.php vaší šablony nebo child šablony.

Tato funkce je zodpovědná za zobrazování metafieldů na stránce detailu objednávky uživatele. Upravte ji dle potřeby. Tato funkce se bude vykonávat místo původní.

Původní funkce:

if ( ! function_exists( 'wc_display_item_meta' ) ) {
	/**
	 * Display item meta data.
	 *
	 * @since  3.0.0
	 * @param  WC_Order_Item $item Order Item.
	 * @param  array         $args Arguments.
	 * @return string|void
	 */
	function wc_display_item_meta( $item, $args = array() ) {
		$strings = array();
		$html    = '';
		$args    = wp_parse_args(
			$args,
			array(
				'before'       => '<ul class="wc-item-meta"><li>',
				'after'        => '</li></ul>',
				'separator'    => '</li><li>',
				'echo'         => true,
				'autop'        => false,
				'label_before' => '<strong class="wc-item-meta-label">',
				'label_after'  => ':</strong> ',
			)
		);

		foreach ( $item->get_all_formatted_meta_data() as $meta_id => $meta ) {
			$value     = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( trim( $meta->display_value ) ) );
			$strings[] = $args['label_before'] . wp_kses_post( $meta->display_key ) . $args['label_after'] . $value;
		}

		if ( $strings ) {
			$html = $args['before'] . implode( $args['separator'], $strings ) . $args['after'];
		}

		$html = apply_filters( 'woocommerce_display_item_meta', $html, $item, $args );

		if ( $args['echo'] ) {
			// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			echo $html;
		} else {
			return $html;
		}
	}
}

Příklad úpravy: na řádcích 28-30 byla přidána podmínka, která znemožňuje zobrazení metafieldů s meta_key ‘prvni_meta_key’ a ‘druhy_meta_key’

if ( ! function_exists( 'wc_display_item_meta' ) ) {
	/**
	 * Display item meta data.
	 *
	 * @since  3.0.0
	 * @param  WC_Order_Item $item Order Item.
	 * @param  array         $args Arguments.
	 * @return string|void
	 */
	function wc_display_item_meta( $item, $args = array() ) {
		$strings = array();
		$html    = '';
		$args    = wp_parse_args(
			$args,
			array(
				'before'       => '<ul class="wc-item-meta"><li>',
				'after'        => '</li></ul>',
				'separator'    => '</li><li>',
				'echo'         => true,
				'autop'        => false,
				'label_before' => '<strong class="wc-item-meta-label">',
				'label_after'  => ':</strong> ',
			)
		);

		foreach ( $item->get_all_formatted_meta_data() as $meta_id => $meta ) {
			$value     = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( trim( $meta->display_value ) ) );
                        if( ( $meta->display_key != "prvni_meta_key" ) and ( $meta->display_key != "druhy_meta_key" ) ) {
                           $strings[] = $args['label_before'] . wp_kses_post( $meta->display_key ) . $args['label_after'] . $value;
                        }
		}

		if ( $strings ) {
			$html = $args['before'] . implode( $args['separator'], $strings ) . $args['after'];
		}

		$html = apply_filters( 'woocommerce_display_item_meta', $html, $item, $args );

		if ( $args['echo'] ) {
			// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			echo $html;
		} else {
			return $html;
		}
	}
}

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

five × 2 =

uděluji souhlas se zpracováním mých osobních údajů (jméno, e-mail) za účelem odpovědi na můj dotaz, zaslaný prostřednictvím kontaktního formuláře umístěného na webových stránkách správce.

 

Souhlas

Udělením tohoto souhlasu se zpracováním osobních údajů poskytujete souhlas k tomu, aby Richard Polák, Příčná 593, 330 08 Zruč-Senec (dále jako „správce“) zpracovávala Vaše osobní údaje poskytnuté na základě tohoto souhlasu dle dále uvedených podmínek.

 

Rozsah zpracování Vašich osobních údajů

Správce bude na základě tohoto souhlasu zpracovávat Vaše jméno a e-mail, a to za dále uvedeným účelem.

 

Účel zpracování Vašich osobních údajů

Správce bude Vaše osobní údaje poskytnuté na základě tohoto souhlasu zpracovávat za účelem evidence a zpracování odpovědi na položený dotaz, zaslaný prostřednictvím kontaktního formuláře umístěného na webových stránkách správce.

 

Právní základ zpracování osobních údajů

Právním základem zpracování je tento Váš souhlas. Vaše Osobní údaje jsou zpracovávány v souladu s Obecným nařízením o ochraně osobních údajů – Nařízením Evropského parlamentu a rady (EU) 2016/679 ze dne 27.4.2016 – (dále jako „GDPR“).

 

Doba, po níž budou Vaše osobní údaje zpracovávány

Správce bude Vaše osobní údaje zpracovávat po dobu nezbytně nutnou, maximálně však 5 let ode dne odeslání formuláře, pokud tento souhlas neodvoláte dříve.

 

Odvolání souhlasu se zpracováním osobních údajů

Tento Váš dobrovolně udělený souhlas se zpracováním osobních údajů můžete kdykoli bezplatně odvolat, a to prostřednictvím zaslání e-mailu na adresu: mail@richardpolak.cz
Odvoláním souhlasu není dotčena zákonnost zpracování vycházejícího ze souhlasu, který byl dán před jeho odvoláním.

 

Osoby s přístupem k Vaším osobním údajům

K Vašim osobním údajům bude mít přístup správce.

 

Kontaktní údaje správce

Správce můžete kontaktovat na e-mailu: mail@richardpolak.cz či písemně na adrese provozovny správce (Richard Polák, Příčná 593, 330 08 Zruč-Senec, Česká republika). Správce je oprávněn požadovat prokázání Vaší totožnosti za účelem zamezení přístupu neoprávněným osobám k Vašim osobním údajům.

 

Vaše práva související s ochranou Vašich osobních údajů

Máte právo kdykoliv odvolat svůj souhlas, opravit či doplnit osobní údaje, požadovat omezení zpracování, vznést námitku či stížnost proti zpracování osobních údajů, požadovat přenesení údajů, přístupu ke svým osobním údajům, být informován o porušení zabezpečení osobních údajů, výmazu a další práva stanovená v GDPR.

 

Právo podat stížnost u dozorového úřadu

Kdykoliv můžete podat stížnost týkající se zpracování Vašich osobních údajů nebo neplnění povinností správce plynoucích z GDPR k dozorovému úřadu – Úřad pro ochranu osobních údajů, se sídlem Pplk. Sochora 27, 170 00 Praha 7, www.uoou.cz.

 

Povinnost poskytnout osobní údaje. Následky neposkytnutí osobních údajů

Vaše osobní údaje poskytujete zcela dobrovolně. Nemáte žádnou povinnost je poskytnout. V případě, že Vaše osobní údaje neposkytnete, nehrozí Vám žádná sankce.

Skip to content