Termék automatikus hozzáadása a WooCommerce kosárhoz előnézeti képe

Termék automatikus hozzáadása a WooCommerce kosárhoz

| Olvasási idő: 1 perc

Egy (sokkal) korábbi projektemben találkoztam először azzal az igénnyel, hogy egy adott terméket mindenképpen helyezzünk a kosárba bizonyos feltételek teljesülése esetén. 

Először kezdjünk a szokásos módszerrel: hozzunk létre egy fájlt (add_product_to_cart_programmatically.php) az mu-plugins mappában, az alábbi tartalommal: 

php
<?php
/*
Plugin Name: Programmatically add product to cart
Plugin URI: https://www.webmenedzser.hu
Description: Add a product to the cart programmatically if the user role is subscriber
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function add_product_to_cart_programmatically() {
    $productID = 39;

    $productCartID = WC()->cart->generate_cart_id( $productID );
    $inCart = WC()->cart->find_product_in_cart( $productCartID );

    if ( !$inCart ) {
        WC()->cart->add_to_cart( $productID );
    }
}
add_action( 'template_redirect', 'add_product_to_cart_programmatically', 10, 0 );

A fenti kód nem tesz mást, mint ellenőrzi, hogy a 39-es ID-jú termék a kosárban van-e már - ha nincs, akkor azt automatikusan a kosárba helyezi. Persze ennél még tovább is lehet "csicsázni" a kódot, mint például az alábbi esetben: 

php
<?php
/*
Plugin Name: Programmatically add product to cart
Plugin URI: https://www.webmenedzser.hu
Description: Add a product to the cart programmatically if the user role is subscriber
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function add_product_to_cart_programmatically() {
    if (current_user_can('customer')) {
        $productID = 39;

        $productCartID = WC()->cart->generate_cart_id( $productID );
        $inCart = WC()->cart->find_product_in_cart( $productCartID );

        if ( !$inCart ) {
            WC()->cart->add_to_cart( $productID );
        }
    }
}
add_action( 'template_redirect', 'add_product_to_cart_programmatically', 10, 0 );

Nem változott sok minden a korábbi példához képest, csak annyi, hogy a hozzáadás előtt megvizsgáljuk, az aktuális felhasználónk customer szerepkörű-e: csak ebben az esetben futtatjuk le a vizsgálatot és a hozzáadást. 

Innnetől már csak a saját, egyedi működést kell kialakítanunk, de ez valószínűleg már nem lesz olyan bonyolult (vagy de, de akkor nem szóltam). 

Ha a webshopod technikai részeivel rendben vagy, még ne dőlj hátra: menj és olvasgass egy kis webáruház marketing blogot is. ;)