/ / woocommerce виключає державну безкоштовну доставку (австралійські штати) - wordpress, woocommerce, доставка, штати

woocommerce виключити державну безкоштовну доставку (австралійські держави) - wordpress, woocommerce, shipping, states

Я намагаюся реалізувати woocommerces виключити штати з фрагмента безкоштовної доставки (австралійський сайт), але я стикаюся з цією помилкою:

"Фатальна помилка: виклик функції члена get_shipping_state () на об'єкті в /home/bpcsport/public_html/wp-content/plugins/wa-exclude/wa-exclude.php на лінії 30 "

Моєму клієнту потрібно виключити Західну Австралію з угоди про безкоштовну доставку, яку вони пропонують за допомогою woocommerce. Я отримую помилку в будь-якому випадку, якщо розміщую її у своїх темах function.php або через формат плагіна.

Я також спробував наступний метод безрезультатно.

Як я можу відключити безкоштовну доставку для окремих держав?

Це фрагмент з woocommerce, який знаходиться у плагіні

/**
* Hide ALL shipping options when free shipping is available and customer is NOT in certain states
* Hide Free Shipping if customer IS in those states
*
* Change $excluded_states = array( "AK","HI","GU","PR" ); to include all the states that DO NOT have free shipping
*/

add_filter( "woocommerce_available_shipping_methods", "hide_all_shipping_when_free_is_available" , 10, 1 );

/**
* Hide ALL Shipping option when free shipping is available
*
* @param array $available_methods
*/
function hide_all_shipping_when_free_is_available( $available_methods ) {

$excluded_states = array( "WA" );

if( isset( $available_methods["free_shipping"] ) AND !in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) :

// Get Free Shipping array into a new array
$freeshipping = array();
$freeshipping = $available_methods["free_shipping"];

// Empty the $available_methods array
unset( $available_methods );

// Add Free Shipping back into $avaialble_methods
$available_methods = array();
$available_methods[] = $freeshipping;

endif;

if( isset( $available_methods["free_shipping"] ) AND in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) {

// remove free shipping option
unset( $available_methods["free_shipping"] );

}

return $available_methods;
}


?>

Відповіді:

0 для відповіді № 1

Я створив плагін, який дозволяє розширені конфігурації користувачів. Хоча він включає лише штати США, ви можете налаштувати умови країни та поштовий індекс.

Я не знаю, чи відповідає це вашим вимогам, але, можливо, варто перевірити: http://wordpress.org/plugins/woocommerce-advanced-free-shipping/