I think this is not possible so I’m trying a different approach – I’m trying to copy “Enable for shipping methods” field from COD to BACS –
function is_available() {
global $woocommerce;
if ( ! empty( $this->enable_for_methods ) ) {
if ( is_page( woocommerce_get_page_id( 'pay' ) ) ) {
$order_id = (int) $_GET['order_id'];
$order = new WC_Order( $order_id );
if ( ! $order->shipping_method )
return false;
$chosen_method = $order->shipping_method;
} elseif ( empty( $woocommerce->session->chosen_shipping_method ) ) {
return false;
} else {
$chosen_method = $woocommerce->session->chosen_shipping_method;
}
$found = false;
foreach ( $this->enable_for_methods as $method_id ) {
if ( strpos( $chosen_method, $method_id ) === 0 ) {
$found = true;
break;
}
}
if ( ! $found )
return false;
}
return parent::is_available();
}
I’m using this snippet – I select the “Local pickup” in the “Enabled for shipping methods” field in BACS, but it doesn’t disable Local pickup.
Any ideas?
Thanks in advance!