Korisnik je trebal dodati popust svim registriranim kupcima, koji su u košaricu stavili više od 20 a manje od 350 i ako nije odabrano free shipping.
naziv metode možete pronaći na stranici naplate ako napravite inspect element i pogledate source kod. Tu vrijednost onda ubacite u snippet i ta metoda dostave neće prikazati popust.
add_action( 'woocommerce_cart_calculate_fees', 'add_loyalty_fee', 10, 1 );
function add_loyalty_fee( $cart ) {
if ( is_user_logged_in() ) {
$order_total = $cart->get_subtotal();
$loyalty_fee = -10;
$chosen_shipping_method = WC()->session->get( 'chosen_shipping_methods' )[0];
if ( $order_total > 20 && $order_total < 350 && $chosen_shipping_method != 'free_shipping:3' ) {
$cart->add_fee( __( 'Loyalty Fee', 'woocommerce' ), $loyalty_fee );
}
}
}
Nudeći popuste za lojalnost, ne pokazujete samo zahvalnost za vjerne kupce, već i potičete nove kupce da se pridruže vašem programu vjernosti. S nizom ekskluzivnih pogodnosti dostupnih kada se prijave, to je poticaj koji kupci neće htjeti propustiti.
Ovaj snipet se može iskoristiti za davanje loyality popusta za registrirane korisnike. Popust se doda samo ako je korisnik registrirani. Snipet prvo provijeri ako je korisnik registrani, ako je registrirani onda doda fee sa negativnim predznakom što je zapravo iskazano kao popust.
add_action( 'woocommerce_cart_calculate_fees', 'add_logged_in_user_fee' );
function add_logged_in_user_fee() {
if (is_user_logged_in()) {
global $woocommerce;
$fee = -5;
$woocommerce->cart->add_fee( 'Loyality popust', $fee, true, 'standard' );
}
}
Ako želite da se popust prikaže samo ako u košaricu stavi više od 100 onda možete koristiti ovaj snipet.
add_action( 'woocommerce_cart_calculate_fees', 'add_logged_in_user_fee' );
function add_logged_in_user_fee($cart) {
if (is_user_logged_in() && $cart->get_subtotal() > 100 ) {
global $woocommerce;
$fee = -5;
$woocommerce->cart->add_fee( 'Loyality popust', $fee, true, 'standard' );
}
}
Popust za vjernost izvrstan je način za tvrtke da nagrade svoje klijente za njihovu kontinuiranu podršku. Nudeći popust za lojalnost, tvrtke mogu povećati zadovoljstvo kupaca, potaknuti ponovne posjete i povećati prodaju. Bilo da ste mala tvrtka ili velika korporacija, važno je prepoznati vrijednost lojalnih kupaca i nagraditi ih popustima.
Ponekad je korisno prikazati naziv kategorije ispod naziva proizvoda, ovaj snipet upravo to i omogućuje.
add_filter( 'woocommerce_cart_item_name', 'add_category_to_cart_item_name', 10, 3 );
function add_category_to_cart_item_name( $name, $cart_item, $cart_item_key ) {
$product = $cart_item['data'];
$categories = get_the_terms( $product->get_id(), 'product_cat' );
if ( ! empty( $categories ) ) {
$category_names = wp_list_pluck( $categories, 'name' );
$name .= '<br><span class="product-category">Kategorija: ' . implode( ', ', $category_names ) . '</span>';
}
return $name;
}
Potrebno je bilo složiti da na dva ili više proizvoda iz iste kategorije se doda neki popust u postocima. Snipet uzima ukupnu cijenu svih proizvoda iz iste kategorije te izračunava popust samo ako u košarici ima više od dva proizvoda.
Primjer prikazuje da su u košaici dva proizvoda iz različitih kategorija, a samo na kategoriju "slikovnica" se računa popust.
add_action( 'woocommerce_cart_calculate_fees', 'add_discount_for_slikovnica_category' );
function add_discount_for_slikovnica_category( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ){return;}
$discount = 50; $category = 'slikovnica';
$total = 0; $count = 0;
foreach ( $cart->get_cart() as $cart_item ) {
$product_categories = get_the_terms( $cart_item['product_id'], 'product_cat' );
foreach ( $product_categories as $product_category ) {
if ( $product_category->slug == $category ) {
$total += $cart_item['line_total'];
$count = $count + $cart_item['quantity'];
}
}
}
if ( $count >= 2 ) {
$discount_amount = ( $total * $discount ) / 100;
$cart->add_fee( 'Popust na '.$count.' slikovnice ('.$total.' - ' . $discount . '%)', -$discount_amount );
}
}