在 WooCommerce 中實現數量折扣功能:買多享優惠

在電子商務中,靈活的定價策略對於吸引顧客和提高銷售非常重要。今天,我們將介紹一個在 WooCommerce 中實現的實用功能:買多享優惠,這個功能能夠自動根據購買數量調整價格,讓顧客在購買更多商品時享受更多優惠。

功能概述

“買多享優惠”功能允許商家為每個產品設置不同的數量折扣規則。當顧客在購物車中選擇了較多數量的商品後,系統會自動調整價格,讓顧客能夠獲得更低的單價優惠。

主要特點:

  1. 自動價格調整:根據顧客選擇的購買數量,自動應用設定好的優惠價格。
  2. 靈活的設定選項:商家可以在產品編輯頁面上啟用或禁用此功能,並設置不同數量的優惠價格。
  3. 前端展示清晰明瞭:在產品詳情頁的售價下方,顯示一個清晰的表格,列出不同數量對應的價格。

程式碼

// 在產品編輯頁面中添加自定義字段
function add_custom_price_options() {
    echo '<div class="options_group">';
    
    // 勾選框:啟用自定義價格功能
    woocommerce_wp_checkbox(
        array(
            'id'            => '_enable_custom_price',
            'label'         => __('Enable Custom Price', 'woocommerce'),
            'description'   => __('Enable custom pricing based on quantity.', 'woocommerce'),
        )
    );
    
    // 文本輸入:自定義價格選項
    woocommerce_wp_text_input(
        array(
            'id'          => '_custom_price_options',
            'label'       => __('Custom Price Options', 'woocommerce'),
            'placeholder' => 'e.g. 5:1500,6:1200,10:1000',
            'desc_tip'    => 'true',
            'description' => __('Enter different quantities and their respective prices.', 'woocommerce'),
        )
    );
    echo '</div>';
}
add_action('woocommerce_product_options_pricing', 'add_custom_price_options');

// 保存自定義字段數據
function save_custom_price_options($post_id) {
    $enable_custom_price = isset($_POST['_enable_custom_price']) ? 'yes' : 'no';
    $custom_price_options = isset($_POST['_custom_price_options']) ? sanitize_text_field($_POST['_custom_price_options']) : '';

    update_post_meta($post_id, '_enable_custom_price', $enable_custom_price);
    update_post_meta($post_id, '_custom_price_options', $custom_price_options);
}
add_action('woocommerce_process_product_meta', 'save_custom_price_options');

// 根據數量更新購物車中的價格
function update_cart_price_based_on_quantity($cart_object) {
    if (!WC()->session->__isset('reload_checkout')) {
        foreach ($cart_object->get_cart() as $cart_item_key => $cart_item) {
            $product_id = $cart_item['product_id'];
            $quantity = $cart_item['quantity'];
            $enable_custom_price = get_post_meta($product_id, '_enable_custom_price', true);
            $custom_price_options = get_post_meta($product_id, '_custom_price_options', true);

            if ($enable_custom_price === 'yes' && !empty($custom_price_options)) {
                $options = explode(',', $custom_price_options);
                foreach ($options as $option) {
                    list($qty, $price) = explode(':', $option);
                    if ($quantity >= $qty) {
                        $cart_item['data']->set_price((float) $price);
                    }
                }
            }
        }
    }
}
add_action('woocommerce_before_calculate_totals', 'update_cart_price_based_on_quantity');

// 在產品頁面顯示數量價格表格
function display_quantity_price_table() {
    global $product;
    $enable_custom_price = get_post_meta($product->get_id(), '_enable_custom_price', true);
    $custom_price_options = get_post_meta($product->get_id(), '_custom_price_options', true);

    if ($enable_custom_price === 'yes' && !empty($custom_price_options)) {
        $options = explode(',', $custom_price_options);
        
        echo '<div style="margin-top: 20px;">';
        echo '<h3 style="margin-bottom: 10px; text-align: center;">' . __('買多享優惠', 'woocommerce') . '</h3>';
        echo '<table class="quantity-price-table" style="width:100%; border-collapse: collapse; text-align: center;">';
        echo '<thead>';
        echo '<tr>';
        echo '<th style="border: 1px solid #ddd; padding: 8px; background-color: #f8f8f8;">' . __('Quantity', 'woocommerce') . '</th>';
        echo '<th style="border: 1px solid #ddd; padding: 8px; background-color: #f8f8f8;">' . __('Price', 'woocommerce') . '</th>';
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        foreach ($options as $option) {
            list($quantity, $price) = explode(':', $option);
            echo '<tr>';
            echo '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' . esc_html($quantity) . '</td>';
            echo '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' . wc_price($price) . '</td>';
            echo '</tr>';
        }

        echo '</tbody>';
        echo '</table>';
        echo '</div>';
    }
}
add_action('woocommerce_single_product_summary', 'display_quantity_price_table', 11);

如何使用這個功能

啟用自定義價格

Ekeklh8

在 WooCommerce 的產品編輯頁面中,你會看到一個選項叫“Enable Custom Price”。勾選這個選項後,你可以在相應的文本框中設置不同數量的價格,例如:5:1500,6:1200,10:1000。這表示當購買數量達到或超過 5 件時,單價為 1500,以此類推。

顧客體驗

T9rix8h

當顧客在網站上查看產品時,他們會在產品售價下方看到一個名為“買多享優惠”的表格。這個表格會清楚地展示不同數量的商品所對應的優惠價格,讓顧客在購物時更加明確地知道自己能夠享受的折扣。

優勢

  • 促進銷售:通過鼓勵顧客購買更多數量來獲得更高的折扣,從而增加總銷售額。
  • 提高客戶滿意度:提供透明的價格折扣信息,讓顧客感受到物有所值的購物體驗。
  • 簡單易用:商家只需在產品後台勾選選項並設定優惠價格即可,無需複雜的操作。

瀏覽次數:7