2017-02-13 20 views
5

Tôi đã không cố gắng sử dụng mã từ câu trả lời này:
How to get minimum order amount for free shipping in woocommerceBắt lượng đặt hàng tối thiểu cho phương pháp 'Vận Chuyển Miễn Phí' trong trang thanh toán

Nhưng nó trả về một kết quả NULL và tôi không thể tìm thấy cách sửa mã này cho đến bây giờ.

Làm cách nào để nhận số tiền đơn đặt hàng tối thiểu trên trang thanh toán?

Cảm ơn

+0

Có thể trùng lặp [Làm cách nào để nhận được số tiền đặt hàng tối thiểu miễn phí trong woocommerce] (http://stackoverflow.com/questions/26582039/how-to-get-minimum-order-amount-for-free -shipping-in-woocommerce) –

+0

vui lòng đọc lại mô tả của tôi. Tôi đã làm như thế (liên kết của bạn) nhưng nó trả về kết quả NULL. Tôi đang làm như thế này: $ selected_methods = WC() -> session-> get ('selected_shipping_methods'); \t \t $ selected_shipping = $ selected_methods [0]; nhưng làm thế nào để tôi có thể nhận min_amount nếu phương thức được chọn là Giao hàng miễn phí? – huykon225

+0

@LoicTheAztec bạn có nghĩa là tôi phải thay đổi câu hỏi hoặc mô tả? tất cả những gì tôi muốn: khi tôi đến trang thanh toán và chọn phương thức giao hàng là Giao hàng miễn phí, tôi muốn nhận ** số tiền tối thiểu ** của phương thức này. Bạn có thể giúp tôi được không ? – huykon225

Trả lời

4

Mã của câu trả lời này: How to get minimum order amount for free shipping in woocommerce
đã lỗi thời với WooCommerce phiên bản 2. 6+, nhưng nó rất hữu ích cho câu trả lời chức năng này…

Sau khi thực hiện một số tìm kiếm và một số cố gắng, tôi đã tìm cách nhận số tiền đặt hàng tối thiểu được đặt trong phương thức Giao hàng miễn phí, cho một Vùng cụ thể (Vùng):

enter image description here

đây là mã thử nghiệm làm việc (giải thích được nhận xét bên trong):

// Here you get (as you already know) the used shipping method reference 
$chosen_methods = WC()->session->get('chosen_shipping_methods'); 

// Replacing inside the string ':' by '_' 
$option_value = str_replace(':', '_', $chosen_methods[0]); 

// We concatenate the string with additional sub-strings 
$option_value = 'woocommerce_'.$option_value.'_settings'; 

// Just a test => outputting the string to see what we get 
echo $option_value; echo '<br>'; 

// Now we can get the options values with that formatted string 
$free_shipping_settings = get_option($option_value); 

// Just for test => we output the (pre-formatted) array of values to check 
echo '<pre>'; print_r($free_shipping_settings); echo '</pre><br>'; 

// Here we get the value of the order min amount (Finally!) 
$order_min_amount = $free_shipping_settings['min_amount']; 

// We output the value (to check) 
echo 'Order min amount: '.$order_min_amount; 

Bingo! bạn nhận được nó.

+1

cảm ơn bạn rất nhiều. Tôi vừa tìm thấy nó và đi đến đây cùng một kết quả. cám ơn bạn một lần nữa ! – huykon225

+1

cảm ơn sự nhiệt tình của bạn. có một ngày tốt đẹp;)) – huykon225

+0

yes sire. Tôi sẽ làm điều đó trong đầu. cảm ơn – huykon225

0

Bạn cần phải nhận được tùy chọn bằng cách,

get_option('woocommerce_free_shipping_1_settings'); 

Và sau đó unserialize dữ liệu bằng cách thực hiện,

maybe_unserialize(); 
+0

cảm ơn câu trả lời của bạn. db của tôi có quá nhiều ** woocommerce_free_shipping_x_settings ** (với x: 9-> 19). Tôi muốn nhận được số tiền tối thiểu Phương thức giao hàng miễn phí trong trang thanh toán. bạn có hiểu câu hỏi không? hãy giúp tôi – huykon225

0

Có thể nó sẽ giúp ai đó. Bạn có thể tạo đối tượng giao hàng miễn phí mới và nhận được từ nó min_amount. Tôi nghĩ rằng nó đơn giản hơn trong câu trả lời @LoicTheAztec.

if (class_exists('WC_Shipping_Free_Shipping')) { 
    $free_shipping = new WC_Shipping_Free_Shipping(); 
    $min_amount = $free_shipping->min_amount; 
    echo $min_amount; 
} 
+0

nó không hoạt động với woocommerce 2.6 hoặc cao hơn. xin vui lòng kiểm tra trước khi gửi câu trả lời của bạn? – huykon225

Các vấn đề liên quan