Merhaba arkadaşlar, bu yazımızda WordPress’in e-ticaret siteleri oluşmak için kullandığımız WooCommerce eklentisinde bazı kampanya örnekleri nasıl oluşturulduğuna değineceğim. İyi okumalar.
WooCommerce’da kullanacağımız kampanya örneklerinin listesi
- Sepet Bazlı İndirimler
- Üründe Adet Bazında Özel İndirim. (sepette toplamda Y adet ve üzeri siparişinize özel X indirim)
- X’inci üründe Y indirim.
- Amazon Kampanya örneği
- X Al Y Öde Kampanyası
- Sepet tutarına özel kampanya. (X TL ve üzeri alışverişiniz Y indirim)
- ilk alışverişe özel ücretsiz kargo.
- 1. 2. 3. siparişlere özel indirim.
- Ödeme yöntemlerine göre indirim.
- Hızlı indirim sayacı.
- üye olan X indirim. (yakında)
- Sonraki siparişlerinize özel indirimler.
- Üniversite Öğrencilerine İndirim Kampanyası
Kampanya kodlarını eklemek için bütün kodları Görünüm > Tema düzenleyici > function.php
sayfasının en alt satırına aşağıdaki kodları sırasıyla yazarak işlemi tamamlayabilirsiniz..

Sepette toplamda X adet ve üzeri Siparişlere özel Y indirim
Sepete eklenen ürünlerin toplamı 3 adet fazla olan kullanıcılara özel indirimler saylar.
örnek 1: Toplamı 5 adet ürün olan sepete 30 TL indirimi uygula.
örnek 2: Toplamı 5 adet ürün olan sepete %30 indirimi uygula.
/* Add Cart Discount based on cart total items amount */
add_action('woocommerce_cart_calculate_fees' , 'cart_items_discount', 10, 1);
function cart_items_discount( $cart ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// sepette 3 veya daha fazla ürün olduğunda
if( $cart->get_cart_contents_count() >= 3):
// indirimde değişkeni
$is_on_sale = false;
// eğer sepetinizde indirimli
// Sepetteki her öğeyi tekrarla
foreach( $cart->get_cart() as $cart_item ){
// Ürün objesinin bir örneğini alma
$product = $cart_item['data'];
// sepetteki bir ürün indirimdeyse, $is_on_sale döngüyü durdurur
if($product->is_on_sale()){
$is_on_sale = true;
break;
}
}
## indirim hesaplaması ##
//$discount = $cart->subtotal * -0.15; # sepet tutarına ek %15 indirim sağlar
$discount = - 15; # sepet tutarına ek 15 birim indirim sağlar(tüm para birimlerinde)
## indirim uygula (indirimde ürün yoksa) ##
if(!$is_on_sale ){
$cart->add_fee( '3 adet üzeri 15TL indirim', $discount);
}
endif;
}
/* Add Cart Discount based on cart total items amount */

Sepette farklı X adet ve üzeri 1 ürün ücretsiz
Bu Kampanya örneği ise yukarıdaki kampanyanın farklı bir çeşididir. Sepetinizde 3 adet ve üzeri farklı ürün eklemeniz de sepetinizdeki en ucuz ürünün miktarı kadar indirim sağlayan kampanya örneğidir.

Örnek: A ürün(150 TL), B ürün(100 TL)[en ucuz], C ürün (230 TL) = Toplam 480 TL -> sepet indirimi 100 TL
/* Add Cart Discount based on cart total items amount - 2 */
add_action('woocommerce_cart_calculate_fees' , 'cart_items_discount', 10, 2);
function cart_items_discount( $cart ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
global $woocommerce;
// sepette 3 veya daha fazla ürün olduğunda
if( count($cart->get_cart()) >= 3){
## indirim hesaplaması ##
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
$product_price[] = get_option('woocommerce_tax_display_cart') == 'excl' ? $_product->get_price_excluding_tax() : $_product->get_price_including_tax(); //Sepetteki tüm ürün fiyatlarını diziye aktar
}
}
$discount = min($product_price); // sepetteki en ucuz ürün
// indirim uygula
$cart->add_fee( '3 adet üzeri 1 ürün ücretsiz' , -$discount);
}
}
/* Add Cart Discount based on cart total items amount - 2 */
Kategori bazlı sepette farklı X adet ve üzeri 1 ürün ücretsiz
Yukarı işlemin aynısı fakat belirlediğimiz kategorilerde geçerli olmak üzere sepetinizde 3 adet ve üzeri farklı ürün eklemenizde sepetinizdeki en ucuz ürünün miktarı kadar indirim sağlayan kampanya örneğidir.
Sepet koşulları: Sepette kampanyaya dahil olan kategorideki ürünler en az 3 adet olması durumunda kampanya uygulanır.
$categories = array( x-kategori );
kategori kısa ismini veya id yazabilirsiniz
Örnek:
A ürün(150 TL)[x kategori]
B ürün(100 TL)[x kategori]
C ürün(90 TL)[y kategori]
D ürün(290 TL)[x kategori]
= Toplam 630 TL -> sepet indirimi 100 TL
/* Add Cart Discount based on cart total items amount - 3 */
add_action('woocommerce_cart_calculate_fees' , 'cart_items_discount', 10, 2);
function cart_items_discount( $cart ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
global $woocommerce;
$categories = array( 36,25 ); // buraya kategorinin term_id ya da id yazabilirsiniz
// sepette 3 veya daha fazla ürün olduğunda
if ( count( $cart->get_cart() ) >= 3 ) {
## indirim hesaplaması ##
foreach ( $woocommerce->cart->get_cart() as $cart_item ) {
if ( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) { //kategoriler ile eşleşen ürünler varmı
$matchingCat[] = $cart_item['product_id']; // kategoriler ile eşleşen ürünlerin ID'lerini değişkene aktarır
}
$product_price[] = $cart_item['data']->get_price(); // sepetteki ürünleri $product_price değişkenine aktarır
}
if(count($matchingCat) >= 3 ){
$discount = isset($product_price) ? min($product_price) : 0; // sepetteki en ucuz ürün
$cart->add_fee('3 adet üzeri 1 ürün ücretsiz', -$discount); // indirimi uygula
}
}
}
/* Add Cart Discount based on cart total items amount - 3 */

X’inci üründe Y indirim
En çok kullanılan e-ticaret kampanya örnekleri arasında yer alan İkinci üründe anında %50 indirim ya da üçüncü üründe anında %30 indirim gibi kampanyalar her zaman alıcılar tarafından rağbet görmektedir.
Sepete eklenen aynı üründen birden fazla eklenirse uygulanacak olan indirim
ikinci ürüne anında indirim kampanyası ile yapacağınız alışverişlerde 2.ürüne ekstra indirim avantajı ile sahip olabilirsiniz
Örnek 1: A ürün x 3 adet ise 30 TL indirim uygula
Örnek 2: A ürün x 3 adet ise %30 indirim uygula

/* 2. 3. 4.ürünlerde indirim*/
add_action( 'woocommerce_cart_calculate_fees', 'second_item_discount', 10, 1 );
function second_item_discount( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
$percentage = 10; // yüzde miktarı
$discount = 0; //indirim
// sepet öğeleri döngüsü
foreach ( $cart->get_cart() as $cart_item ) {
// miktarı 1 den fazla olanlar
if( $cart_item['quantity'] > 1 ){
// ürün fiyatına %10 indirim
$discount += wc_get_price_excluding_tax( $cart_item['data'] ) * $percentage / 100;
}
}
if( $discount > 0 )
$cart->add_fee( __( '2. ürün indirimi', 'woocommerce' ) , -$discount );
}
/* 2. 3. 4.ürünlerde indirim*/
amazon.com.tr olan kampanyanın örneği
Yukarıda kampanyanın bir başka örneğini ise amazon web sitesinde görmekteyiz. Amazon’daki kampanya ile bizim oluşturduğum kampanyanın mantığı aynıdır. Sadece aynı ya da farklı ürünlere ve sepette en fazla 20 ürüne kadar indirimi destekliyor olması koşulu vardır, bu sorunu şimdi aşağıda vereceğim kod ile bire bir Amazon’daki kampanya ile aynı olmuş olacak. Ayrıca amazon’da prime üyeliklerine özel indirim yapmış benim yazdığım kodda ise bütün üyeler geçerlidir.
Woocommerce’da Prime gibi üyelere özel indirim yapmayı başka bir blog yazımda anlatacağım.

/* amazon kampanya örneği -> 5 ve üzeri ürün alana %5 indirim, 10 ve üzeri %10 indirim (Limit: en fazla 20 ürün için geçerlidir.)*/
add_action( 'woocommerce_cart_calculate_fees', 'second_item_discount', 10, 1 );
function second_item_discount( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
global $woocommerce;
$percentage = 0; // yüzde miktarı
$discount = 0; //indirim
$categories = [31, 52];
$cartTotalProduct =0;
// sepet öğeleri döngüsü
foreach ( $woocommerce->cart->get_cart() as $cart_item ) {
if ( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) { //kategoriler ile eşleşen ürünler varmı
$cartTotalProduct += $cart_item['quantity'];
}
}
// miktarı 5 den fazla olanlar
if( in_array($cartTotalProduct, range(5, 9)) ){
$percentage = 5; // yüzde miktarı %5 olarak ayarladık
$discount += intval($woocommerce->cart->get_cart_contents_total()) * $percentage / 100; // ürün fiyatına %5 indirim
}elseif (in_array($cartTotalProduct, range(10, 20)) ) {
$percentage = 10; // yüzde miktarı %10 olarak ayarladık
$discount += intval($woocommerce->cart->get_cart_contents_total()) * $percentage / 100; // ürün fiyatına %10 indirim
}
if( $discount > 0 )
$cart->add_fee( __( $percentage.' ve üzeri %'.$percentage.' indirimi', 'woocommerce' ) , -$discount ); // indirimi uygula
}
/* amazon kampanya örneği -> 5 ve üzeri ürün alana %5 indirim, 10 ve üzeri %10 indirim (Limit: en fazla 20 ürün için geçerlidir.)*/
X Al Y öde kampanyası
3 al 2 öde kampanyası “2. üründe X indirim” kampanyasının neredeyse aynısıdır arasındaki fark ise hesaplama farkıdır. Yani 100 TL’lik üründen 3 adet alındığında 1 ürün kadar indirim yapmak.
Örnek 1: 3 Al 2 Öde Kampanyası
Örnek 2: 4 Al 2 Öde Kampanyası
/* 3 al 2 öde*/
add_action( 'woocommerce_cart_calculate_fees', 'buy_two_pay_one', 10, 1 );
function buy_two_pay_one( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$quanity = 3; // 3 al
$pay = 2; // 2 öde
$diff = $quanity - $pay; //fark
if ( did_action( 'woocommerce_before_calculate_totals' ) >= $quanity )
return;
$discount = 0; //indirim değişkeni
// sepet öğeleri döngüsü
foreach ( $cart->get_cart() as $cart_item ) {
// miktarı 3 den fazla olanlar
if( $cart_item['quantity'] >= $quanity ){
// ürün fiyatına %10 indirim
$quanityTotal = wc_get_price_excluding_tax( $cart_item['data'] );
$discount += $quanityTotal * $diff;
}
}
//$indirim değişkeni 0'dan büyük ise indirimi uygula
if( $discount > 0 )
$cart->add_fee( __('3 Al 2 Öde', 'woocommerce' ) , -$discount );
}
/* 3 al 2 öde*/
X TL ve üzeri alışverişinizde Y indirim
Sepetinizin asgari tutarına göre belirleyebileceğiniz öze kampanyalar oluşturmanızı sağlar.
örnek 1: 150 TL ve üzeri alışverişlerinizde 15 TL indirim.
örnek 2: 250 TL ve üzeri alışverişlerinizde %15 indirim.
örnek 3: 500 TL ve üzeri alışverişlerinizde %20 indirim.
/* x TL ve üzeri alışverişinizde x indirim*/
add_action( 'woocommerce_cart_calculate_fees', 'discount_based_on_total',25, 15 );
function discount_based_on_total( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
$total = $cart->cart_contents_total;
if( $total >= 150 && $total < 250 ){
// 150 TL ve 249 TL arasındaki sepet toplamına 15 TL indirim uygula
$discount = 15;
$cart->add_fee( __('15 TL İndirim', 'woocommerce'), -$discount );
}else if( $total >= 250 && $total < 500 ){
// 250 TL ve 499 TL arasındaki sepet toplamına %15 indirim uygula
$discount = $total * 0.15;
$cart->add_fee( __('%15 İndirim', 'woocommerce'), -$discount );
}else if( $total >= 500 ){
//500 TL ve üzeri alışverişe %20 indirim uygula
$discount = $total * 0.20;
$cart->add_fee( __('%20 İndirim', 'woocommerce'), -$discount );
}
}
/* x TL ve üzeri alışverişinizde x indirim

İlk alışverişe özel ücretsiz kargo
Sitenizden ilk defa alışveriş yapacak müşterileriniz için ilk alışverişe özel kargo kampanyası oluşturabilirsiniz.
Örnek: İlk alışverişinize özel ücretsiz teslimat.
/* ilk siparişe özel ücretsiz kargo*/
add_action('woocommerce_cart_calculate_fees' , 'vono_first_orders_free_shipping', 10, 14);
function vono_first_orders_free_shipping( $cart_object ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if(is_user_logged_in()) {
// Getting "completed" customer orders
$customer_orders_check = get_posts( array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => 'shop_order', // WC orders post type
'post_status' => 'wc-completed' // Only orders with status "completed"
) );
// Orders count
$customer_orders_count_shipping = count($customer_orders_check);
// WC()->cart->get_shipping_taxes(); #kargo vergisi olursa
// First customer order
if( empty($customer_orders_check) || $customer_orders_count_shipping == 0 ){
$free_shipping_text = __('Ücretsiz kargo', 'woocommerce');
$shipping_discount = -(WC()->cart->get_shipping_total());
}
// Apply discount
if( ! empty( $shipping_discount ) ){
// Note: Last argument is related to applying the tax (false by default)
$cart_object->add_fee( $free_shipping_text, $shipping_discount, false);
}
}
}
/* ilk siparişe özel ücretsiz kargo*/

1. 2. 3. siparişlere özel indirim
Sitenizden ilk defa alışveriş yapacak müşteriler için alışverişi cazip kılacak kampanyalardan biridir. Ayrıca sitenizden ilk defa alışveriş yapan müşterileriniz ikinci alışverişe özel ekstra indirim avantajı sağlayarak sadık müşteriler elde ederek yeniden alışverişi sağlayabilirsiniz.
Örnek 1: ilk alışverişinize özel 10 TL indirim.
Örnek 2: ilk alışverişinize özel % 10 indirim.
Örnek 3: 2. alışverişinize özel 30 TL indirim.
Örnek 4: 2. alışverişinize özel % 30 indirim.
/* 1. 2. ve 3. siparişlerdeki indirim*/
add_action('woocommerce_cart_calculate_fees' , 'discount_based_on_customer_orders', 10, 1);
function discount_based_on_customer_orders( $cart_object ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
//kullanıcı giriş yapmış ise
if(is_user_logged_in()) {
// tamamlanmış siparişleri getir
$customer_orders = get_posts( array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(), // giriş yapan kullanıcı
'post_type' => 'shop_order', // WC sipariş
'post_status' => 'wc-completed' // tamamlanmış siparişler
) );
// sipariş toplamı
$customer_orders_count = count($customer_orders);
// sepet toplamı
//$cart_total = WC()->cart->get_total(); // or WC()->cart->get_total_ex_tax()
$cart_con_total= WC()->cart->cart_contents_total;
// 1. sipariş indirimi
if( empty($customer_orders) || $customer_orders_count == 0 ){
$discount_text = __('İlk siparişinize özel indirim', 'woocommerce');
$discount = -((10 / 100) * $cart_con_total); # %10 indirim -> (10 / 100) * sepete toplamı
}
// 2. sipariş indirim
elseif( $customer_orders_count == 1 ){
$discount_text = __('2. sipariş indirimi', 'woocommerce');
$discount = -(20); # 20 TL indirim
}
// 3. sipariş indirimi
elseif( $customer_orders_count == 2 ){
$discount_text = __('3. sipariş indirimi', 'woocommerce');
$discount = -((50 / 100) * $cart_con_total); # %50 indirim -> (50 / 100) * sepete toplamı
}
// indirimi uygula
if( ! empty( $discount ) ){
// Note: Last argument is related to applying the tax (false by default)
$cart_object->add_fee( $discount_text, $discount, false);
}
}
}
/* 1. 2. ve 3. siparişlerdeki indirim*/


Ödeme yöntemlerine göre indirim
Müşterileriniz için farklı ödeme yöntemlerini seçerek indirim sağlayabilirsiniz.
Örnek 1: Havale/EFT ile yapacağınız ödemelerde %5 indirim.
Örnek 2: Kapıda ödeme ile yapacağınız ödemelerde %3 indirim.

<?php
/* eft havale %3 indirim*/
add_action('woocommerce_cart_calculate_fees', 'add_convenience_fee_for_specific_gateway');
function add_convenience_fee_for_specific_gateway(){
$bacsDiscount = 5; #eft havale indirim tutarı (%5)
$bacsDiscount = 3; #Kapıda ödeme indirim tutarı (%3)
$cardDiscount = 1; #kredi kartı ile ödeme indirim tutarı (%1)
$gateway = WC()->session->get('chosen_payment_method');
if ($gateway == 'bacs') { // EFT/havale ödemelerinde yapılacak indirim
//eft havale indirim
WC()->cart->add_fee('EFT/Havale İndirim (%3)', -(WC()->cart->get_cart_contents_total() / 100)* $bacsDiscount );
}elseif ($gateway == 'cod') { // kapıda ödeme seçeneğinde yapılacak indirim.
//Kapıda ödeme indirim
WC()->cart->add_fee('Kadıda Ödeme indirim', (WC()->cart->get_cart_contents_total() / 100)* $codDiscount);
}elseif ($gateway == 'sanalpospro') { // Kredi kartı ödemelerinde yapılacak indirim
// kredi kartı indirim
WC()->cart->add_fee('Kredi kartı Ödeme indirim', (WC()->cart->get_cart_contents_total() / 100)* $cardDiscount);
}
}
// ödeme yöntemi seçilme yapıldıktan sonra yukarıdakilerini uygula
add_action('woocommerce_review_order_before_payment', 'refresh_checkout_on_gateway_change');
function refresh_checkout_on_gateway_change(){
?>
<script type="text/javascript">
(function($){
$( 'form.checkout' ).on( 'change', 'input[name="payment_method"]', function() {
$(document.body).trigger('update_checkout');
});
})(jQuery);
</script>
<?php
}
/* eft havale %3 indirim*/
Hızlı İndirim sayacı
Hızlı satışlar, mevcut müşterileri hızlı aksiyon almaya yönlendirmek için mükemmel bir kampanya yöntemidir. Özellikle indirim ve kampanya dönemlerinde tüketicilerin daha hızlı bir şekilde eyleme geçmelerini sağlayarak, ürünleri sepetlerine eklemelerini sağlamak için ürün ve kategori sayfalarında her ürün için bir geri sayım sayacı kullanabilirsiniz..
Sayacın çalışması için öncelikle ürünlerde indirim zamanlaması yapılmalıdır. Zamanlamanın nasıl yapıldığını aşağıdaki gösterilmiştir.

<?php
/* hızlı indirim sayacı*/
function product_sales_timer() {
global $product;
$sale_date = get_post_meta( $product->get_id(), '_sale_price_dates_to', true );
if ( !empty($sale_date) ) {
?>
<script>
// geri sayaca tarih ekle
var countDownDate = <?php echo $sale_date; ?> * 1000;
// her saniye yineleme
var x = setInterval(function() {
// bugün
var now = new Date().getTime();
// tarih farkı
var distance = countDownDate - now;
//gün-saat-dakika-saniye
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// id="saleend"
document.getElementById("saleend").innerHTML = days + "G " + hours + "S " + minutes + "D " + seconds + "S ";
// geri sayım bittiyse
if (distance < 0) {
clearInterval(x);
document.getElementById("saleend").innerHTML = "Bu ürünün indirimli satış süresi doldu!";
}
}, 1000);
</script>
<!-- geri sayımın görüntülendiği yer -->
<p id="saleend" style="color:#fff;background:#00816A;padding: .3em .7em;display: block;border-radius:6px;font-weight: bold;font-size:150%;text-align:center"></p><br>
<?php
}
}
add_action( 'woocommerce_after_add_to_cart_form', 'product_sales_timer', 20 );
/* hızlı indirim sayacı*/

Ürün sayfasında farklı bir yere yerleştirmek için aşağıdaki linke bakabilirsiniz.
https://www.businessbloomer.com/woocommerce-visual-hook-guide-single-product-page/
Unutmayın, kullanıcıya her noktadan temas etmelisiniz. Bazen indirimlerle, bazen reklam metinleriyle, bir şekilde dokunduğunuz kullanıcıyı kendinize çekmelisiniz. Daha sonrasında iyi bir analiz ile kendi ihtiyaçlarınızı belirleyebilirsiniz. Fark ettiyseniz bütün kampanya modelleri bir ihtiyaçtan dolayı ortaya çıkmıştır. İhtiyacınız olduğunu tespit ettiğinizde kampanya yapmaktan çekinmeyin.
Arkadaşlar yazımızda hata veya önerileriniz olursa lütfen yorum yapmayı unutmayın.
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki blog’ta görüşmek dileğiyle esen kalın.
Merhaba x kategoride 2. ürün 100 TL şeklinde kodu nasıl yaparız. 3 normal fiyat 4. atınca yine 100tl olacak
Hocam yararlı bir makale olmuş çok teşekkürler. Peki şunu yapabilirmiyiz: A,B,C kategorilerinden bir ürün aldığında X kategorisindeki ürün 150 tl gibi birşey yapabilirmiyiz yardımcı olursanız sevinirim.
Hocam peki aynı kategoriden 3 al 2 öde için ne yapmak gerekiyor?
Aynı üründen 3 tane alındığında bir indirim sağlamıyor
Merhaba dostum, aynı kategori işlemi için Kategori bazlı sepette farklı X adet ve üzeri 1 ürün ücretsiz başlığına bakabilirsin. Burada dikkat etmen gereken has_term( [‘category1′,’category2’], ‘product_cat’, “ürün veya post id”) fonksiyonunu kullanarak kategori bazlı işlem yapabilirsin. İyi çalışmalar dilerim 🙂
Merhaba arkadaşım,
Şöyle bir koda ihtiyacımız var.
X al Y öde kampanyası fakat bunu gruplandırmak istiyorum.
Örneğin;
A Grubu: (10,11,12,13,14,15) / Ürün idleri
A Grubu Kampanyası: 3 al 2 öde
Çalışma Prensibi: A Grubunda Idleri girilen ürünlerden aynı yada farklı olarak sepete eklendiyse 3 al 2 öde. (A grubundaki en ucuz ürün)
Gene aynı sepette;
B Grubu: (20,21,22,23,24,25) / Ürün idleri
B Grubu Kampanyası: 4 al 3 öde
Çalışma Prensibi: B Grubunda Idleri girilen ürünlerden aynı yada farklı olarak sepete eklendiyse 4 al 3 öde. (B grubundaki en ucuz ürün)
Gene aynı sepette;
C Grubu: (30,31,32,33,34,35) / Ürün idleri
C Grubu Kampanyası: 3 al 2 öde
Çalışma Prensibi: C Grubunda Idleri girilen ürünlerden aynı yada farklı olarak sepete eklendiyse 3 al 2 öde. (C grubundaki en ucuz ürün)
Özel not: Sepet toplamında Ücretsiz Kargo baremini tüm indirimler uygulandıktan sonra kalan tutara göre hesaplaması gerekiyor.
Toplam inidirmleride sepette ayrı ayrı yazarsa süper olur.
A Grubu Kampanyası İndirimi
B Grubu Kampanyası İndirimi
C Grubu Kampanyası İndirimi
Değerli yorumun teşekkür ederim. Bu istemiş olduğun kampanya modeli biraz uğraştırır bu kampanya modelini ücret karşılığında yapabilirim. Detaylı bilgi için gencyazilimcim@gmail.com adresine mail atabilirsin.
Hocam çok güzel bir makale olmuş ellerinize sağlık ancak sizden birşey istiyorum.
3 al 2 öde kampanyası yaptım belirli katagoriye uyguladım ve 400 tl üzeri alışverişte ücretsiz kargo yaptım sorunsuz çalışıyor.
şöyle birşey istiyorum 400 tl üzeri alıverişlerde ücretsiz kargo olacak ancak ara toplam değil de indirim olduntan sonraki fiyatı almasını istiyorum
mesela 3 al 2 öde olan ürün 100 tl 3 al 2 öde de 200 tl ödemesi gerekiyor bunda kargo ücreti olacak ancak 600 tl ürün 400 tl ye düşüyor bu kargo ücretsiz olacak yardımcı olabilir misiniz
Merhaba dostum değerli yorumun için teşekkür ederim. Dostum X TL üzeri alışveriş kargo ücretsiz için ücretisz kargo bu bağlantıdan ulaşabilirsin gerekliği değişikliği aşağıdaki koddan yardım alarak yapabiliirsin.
ara toplam ve genel toplam için aşağıdaki kodları kullanabilirsin.
Üstadım kodları kategoriye göre ayarlayamaz mıyız?
Her kategori için ayrı indirim olsa çok daha hoş olurdu.
Mesela x kategorisinden 3 alana 1 hediye veya
Y kategorisinde tüm ürünlerde 2. Ye %50 indirim gibi gibi…
Merhaba dostum, bunun için bu yazıdaki “Kategori bazlı sepette farklı X adet ve üzeri 1 ürün ücretsiz” alt başlıkta bulunan has_term yapısını kullanarak yapabilirsin.
Üstad, çok güzel bir makale olmuş. Sayenizde eklentisiz indirim ayarları ayarlayabildim. Çok teşekkür ederim.
Hızlı İndirim sayacı ileri tarihli bir zamanlama yapsam bile direkt yaptığım gün sayacı başlatıyor
örnek: 12.12.2023 – 13.12.2023 yapıyorum ürüne girdiğim an 24 saat saymaya başlıyor
Merhaba dostum, yorumun için teşekkür ederim. Hızlı indirim sayacında başlangıç tarihi yoktur sadece bitiş tarihi vardır. Başlangıç bugünden başlat bitiş ise belirlediğiniz tarihe kadar sayım yapar.
Selamlar, Çalışmalarınız çok değerli, teşekkür ediyorum.
Aynı üründen 20 adet ve üzeri alımlarda ücretsiz kargo olmasını istiyorum. Bunu nasıl sağlayabilirim?
Merhaba dostum, yorumun için teşekkür ederim. yorumun ile ilgili kodu ücretsiz kargo kodu bağlantıdan ulabilirsiniz
merhabalar, faydalı bilgileriniz için teşekkür ederiz. benim sormak istediğim soru şuydu. amazon kampanya örneğini uyguladım. x kategorisi için 2 ve üzeri ürünlerde %10 indirim yapıyoruz. bu kod çalıştı. Ama ben bir de Y kategorisi için aynı işlemi yapmak istiyorum. Tekrar aynı kodu yapıştırdığımda hata veriyor. hata olarak “function second_item_discount( $cart ) {” kodu gösteriyor. burada ne yapabiliriz. farklı farklı kategorilerde farklı indirimler yapmak istiyorum kısaca.
Merhaba çok kategori için aşağıdaki yapıyı kullanman gerekmektedir.
Merhabalar,
öncelikle konunuz için teşekkür ederim. Çok faydalı bilgiler sunmuşsunuz.
Benim de bir sorum olacaktı.
Şimdi belirli ürün kategorisi için örneğin pantolon 5 alım üstünde %5 – 10 ürün alım üstü için de %10 indirim verdim. Bunu kod satırına ekledim.
Bir de 300tl üzeri alışverişlerde 50tl 1000tl üzeri alışverilerde 300tl indirim diye ayarladım.
Sepete pantolon ve farklı ürünler ekleyince hem % indirimi yapıyor hem tl indirimi yapıyor.
Sepet görseli: https://hizliresim.com/n8mkesr
Burada ne yapabiliriz.
Merhaba dostum değerli yorumun için çok teşekkür ederim. Bu sepet için fonksiyon içinde çok koşullandırma yapman gerekmektedir. Bu sayfada diğer kodlardan yararlanarak yapabilirsin. Eğer problemi çözemediysen bana gencyazilimcim@gmail.com adresine mail atabilirsin.
Merhaba, emekleriniz için teşekkür ederim
çok başarılı olmuş. Sizin kurallarınızda, aynı üründen olmak şartıyla 2. 3. 4. Üründe indirim uygulaması var. Benim de şöyle bir şeye ihtiyacım var: aynı ya da farklı bir ürün olması farketmeksizin sepette 2. Ürüne (ucuz olana) %10 veya 50tl indirim nasıl tanımlarım? 3. Ürüne ( ucuz olana) %20 veya 100 tl gibi indirim tanımlamak istiyorum. Yardımcı olmanı rica ediyorum
Değerli yorum için çok teşekkür ederim dostum.
sorunun cevabı bu https://3v4l.org/InuXf linkte. İyi çalışmalar.
amazon kampanyası müthiş çok teşekkürler..
3 lü alımlarda %5 indirim, 6 li alımlarda %10, 9 lu alımlarda %15, 12 li alımlarda %20 indirim olarak kodu ayarlayamadım rica etsem yardımcı olabilirmisiniz. Çok teşekkürler..
Merhaba dostum değerli yorumun için çok teşekkür ederim, yoğunluğum dolayı geç cevap verdim özür diliyorum.
sorunun cevabı;
Üstadım bu kodu tek bir ürüne uyarlayamaz mıyız? Ben ürün toplamında değl ürün miktarında indrm yapmak istiyorum
Tekrar Merhabalar,
Kategori ile eşleşen indirim işime yaradı ancak şunun içinde çıkamadım.
Kategori ile eşleşiyor burası süper + 2 tane aynı üründen alırsan uygulamıyor.
ve ben tamamen indirmesi yerine örn : 2. ürün 10 tl olsun istiyorum. işin içinden çıkamadım destek verir misin.
hataydan sevgiler
Değerli yorumun için çok teşekkür ederim. Sorunu bir önceki yorumda cevapladım. iyi çalışmalar.
Hocam Selamlar,
X kategoride 2. ürün alana 2. ürün 50 tl koduna ihtiyacım var lütfen destek olur musun
Merhaba dostum özür dilerim geç cevap verdiğim bu aralar biraz yoğundum.
sorunun cevabı şuşekilde;
Merhabalar,
3 al 2 öde kampanyasında vergiyi nasıl iptal edebiliriz?
3 adet aynı ürün alımında indirim yapmıyor onu nasıl ayarlayabiliriz hocam,
Ayrı ayrı kategorilerde 3 tane ekleyince indirim yapıyor fakat aynı ürün 3 adet olunca yapmıyor
Teşekkürler
Yorumun için teşekkür ederim.
1-) 3 al 2 öde kampansında vergiyi kaldırmak için
kodunu $discount değişkenin altına yazarak iptal edebilirsin.
2-) 3 al 2 öde kampanyasının mantığı aynı üründen 3 adet alınırsa 1 adet indirim verecek şekilde ayarlanmıştır.
Resim için: 3 al 2 öde kampanyası
Merhabalar hocam,
Şu an farklı 3 adet ürün eklendiğinde indirim yapıyor, aynı üründen 3 tane daha eklese kampanya aktif olmuyor. Sadece şu an 3 farklı üründe aktif olmaktadır, aynı üründen 3 tane daha eklese aktif nasıl yapabiliriz hocam.
Teşekkürler
Hocam Vergi kalkmadı
add_action(‘woocommerce_cart_calculate_fees’ , ‘cart_items_discount’, 10, 2);
function cart_items_discount( $cart ){
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) )
return;
global $woocommerce;
// sepette 3 veya daha fazla ürün olduğunda
if( count($cart->get_cart()) >= 3){
## indirim hesaplaması ##
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values[‘data’];
$product_price[] = get_option(‘woocommerce_tax_display_cart’) == ‘excl’ ? $_product->get_price_excluding_tax() : $_product->get_price_including_tax(); //Sepetteki tüm ürün fiyatlarını diziye aktar
}
}
$discount = min($product_price); // sepetteki en ucuz ürün
// indirim uygula
$cart->add_fee( ‘3 Al 2 Öde’ , -$discount);
add_filter(‘wc_tax_enabled’, ‘__return_false’);
}
}
Merhaba dostum problemin için sana e-posta attım oradan bakabilirsin.
İyi çalışmalar.
Örnek: A ürün(150 TL), B ürün(100 TL)[en ucuz], C ürün (230 TL) = Toplam 480 TL -> sepet indirimi 100 TL
/* Add Cart Discount based on cart total items amount – 2 */
add_action(‘woocommerce_cart_calculate_fees’ , ‘cart_items_discount’, 10, 2);
function cart_items_discount( $cart ){
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) )
return;
global $woocommerce;
// sepette 3 veya daha fazla ürün olduğunda
if( count($cart->get_cart()) >= 3){
## indirim hesaplaması ##
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values[‘data’];
$product_price[] = get_option(‘woocommerce_tax_display_cart’) == ‘excl’ ? $_product->get_price_excluding_tax() : $_product->get_price_including_tax(); //Sepetteki tüm ürün fiyatlarını diziye aktar
}
}
$discount = min($product_price); // sepetteki en ucuz ürün
// indirim uygula
$cart->add_fee( ‘3 adet üzeri 1 ürün ücretsiz’ , -$discount);
}
}
/* Add Cart Discount based on cart total items amount – 2 */
bu örnekte kdv ekliyor bu kampanya tipini kdv hesaplaması yapmadan düzenleyebilirmisiniz?
Merhaba değerli takipçim, anladığım kadarıyla sorun kodda görünmüyor. Bunun için WooCommerce ayarlarından vergileri yapılandırman gerekecek. Vergi ayarları
$discount = min($product_price); // sepetteki en ucuz ürün
$discount = min($product_price)/1.20; // sepetteki en ucuz ürün
yapınca e-fatura kesilirken kdv yi düzgün ayarlıyor demek istediğim buydu vergi oranları %20 olarak girildiğinde
Dostum sorunu tam anlayamadım rica etsem gencyazilimcim@gmail.com e-posta adresine detayları ile birlikte iletebilir misin?
Faydalı bilgiler için çok teşekkür ederim. Sitemde yapmak istediğim sadece seçtiğim marka şartıyla 2.üründe belirlediğim miktarda indirim yapılması bunu nasıl yapabilirim acaba ? Cevabınız için şimdiden teşekkürler.
Örnek olarak ;
X Marka ürün 1000 TL
2.3.4.5. X Marka başka ürünler, ürün başına 50 TL şeklinde indirim nasıl uygulayabilirim 🙂
Merhaba Serkan, yorumunuz için teşekkür ederim!
Woocommerce marka olmadığı ürün etiket yapısıyla yaptım.
Umarın doğru anlamışımdır.
web sitenizi yeni keşfettim ve yer imlerime ekledim. Teşekkürler bilgiler için
Teşekkür ederim 🙂
Merhaba, çok faydalı bir makale olmuş, elinize sağlık. Şöyle bir kampanya yöntemi yapabilir miyiz?
Aynı Kategoriden aldığınız 2. ürün 5 TL (İlk ürünün fiyatı ne olursa olsun, aynı kategoride bulunan farklı bir ürün bile seçilse ikinciyi 5 TL’den satılacak)
Merhaba, yorumun için çok teşekkür ederim 🙂
Senin dediğin kampanya örneğine yakın bir örnek umarım işini görür.
Woocommerce BOGO