Add a checkbox below a specific shipping method in WooCommerce 3
Asked Answered
D

1

5

I'm trying to customize the WC checkout page. In my checkout page I've set 2 shipping methods. My goal is to add a custom field down below the first shipping method. To achieve this I used the hook I mentioned below.

woocommerce_after_shipping_rate

But my problem with this is, it just adds the same field for each shipping methods available. How can I manage to add an input field for a particular shipping method?

Directional answered 20/8, 2018 at 7:46 Comment(0)
S
8

Using the $method argument that is an instance of the WC_Shipping_Rate Object you can target any shipping method Id using get_id() method, like in this example:

add_action( 'woocommerce_after_shipping_rate', 'checkout_shipping_additional_field', 20, 2 );
function checkout_shipping_additional_field( $method, $index )
{
    if( $method->get_id() == 'flat_rate:12' ){
        echo '<br>
        <input type="checkbox" name="shipping_custom_1" id="shipping_custom_1" value="1" class="shipping_method shipping_custom_1">
        <label for="shipping_custom_1">Custom label</label>';
    }
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.

enter image description here

enter image description here


Similar answers:

Stanfordstang answered 20/8, 2018 at 8:4 Comment(1)
The issue with this is as soon as you select an option, the content disappears. Is there a way around this?Callup

© 2022 - 2024 — McMap. All rights reserved.