Tovább a tartalomhoz

Láthatóság: egyéni feltétel

Az Egyéni feltétel eseményindító: összetett láthatósági szabályok egyéni PHP-kóddal, gyakorlati példákkal.

Az Egyéni feltétel szakasz összetett helyzetekre való: egyéni PHP-kóddal döntheted el, látszik-e az elem. A kódnak logikai értéket (true vagy false) kell visszaadnia. Hogy a feltétel teljesülése megjelenítést vagy elrejtést jelent, azt a Megjelenítési mód dönti el.

https://minta-bolt.hu/wp-admin/post.php?post=6&action=elementor
Az Egyéni feltétel szakasz PHP-kódszerkesztővel

A képen az Egyéni PHP feltétel kódszerkesztője látszik. A leírás szerint írj egy függvényt, amely logikai értéket ad vissza, és minden WP-változót és WP-függvényt használhatsz.

Az alábbi példák csak szemléltetésre valók: éles oldalon való használat előtt egy fejlesztőnek kell hozzáigazítania és kipróbálnia őket.

Az aktuális bejegyzés azonosítója szerepel-e egy listában:

$allowed_posts = [1, 21, 37, 46, 55];
return in_array(get_the_ID(), $allowed_posts);

Több metaadat értékének vizsgálata:

$metakey1 = get_post_meta($post->ID, 'metakey1', true);
$metakey2 = get_post_meta($post->ID, 'metakey2', true);
return ($metakey1 == 'value1' && $metakey2 == 'value2');

A hozzászólások száma:

return get_comments_number(get_the_ID()) > 10;

A bejegyzés a múlt héten jelent meg:

return (time() - get_post_time('U', true, get_the_ID()) < WEEK_IN_SECONDS);

A bejegyzés egy adott típusú:

return get_post_type(get_the_ID()) === 'my_post_type';

A felhasználó szerepköre egy integrált fórumban (például bbPress):

return bbp_get_user_role(get_current_user_id()) === 'bbp_keymaster';

A felhasználó megvásárolt egy adott terméket:

$purchased_product_ids = wc_get_customer_bought_products(get_current_user_id());
return in_array('specific_product_id', $purchased_product_ids);

A felhasználó összes költése egy összeg fölött van:

$customer_orders = wc_get_orders(['customer_id' => get_current_user_id()]);
$total_spent = array_sum(array_map(function ($order) { return $order->get_total(); }, $customer_orders));
return $total_spent > 500; // 500 helyére a kívánt összeg kerül

A kosár összege meghalad egy értéket:

return WC()->cart->total > 100; // 100 helyére a kívánt összeg kerül

Egy adott termék a kosárban van:

$product_id = 25; // 25 helyére a vizsgálandó termék azonosítója kerül
return WC()->cart->find_product_in_cart(WC()->cart->generate_cart_id($product_id)) !== false;

A kosárban egy megadott számnál több tétel van:

return WC()->cart->get_cart_contents_count() > 5; // 5 helyére a kívánt darabszám kerül

A felhasználó utolsó rendelése egy összeg fölött volt:

$last_order = wc_get_customer_last_order(get_current_user_id());
return $last_order && $last_order->get_total() > 200; // 200 helyére a kívánt összeg kerül

Nem kötelező függvényt írnod: közvetlenül is írhatsz olyan kódot, amely true vagy false értéket ad vissza. Ha mégis függvényt használsz, meg is kell hívnod, különben nem lesz eredménye.

Hibás, mert a függvény nincs meghívva, így a feltétel nem ad vissza logikai értéket, és hatástalan marad:

function check_condition() { /* a feltételt vizsgáló kód */ }

Helyes, függvény nélkül:

return get_comments_number(get_the_ID()) > 10;

Helyes, függvénnyel (a függvény meg van hívva, és logikai értéket ad vissza):

return check_condition();
function check_condition() {
return get_comments_number(get_the_ID()) > 10;
}

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások