Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Additional custom place order button in WooCommerce checkout

For my checkout page I would like to have more than 1 "place order" button. Is there a script that generates this button? I haven't been able to find it so far.

I only found one where you can change the text of the button. But I need one where I can just generate a new one within the checkout page.

like image 571
Kevin.a Avatar asked Sep 02 '25 14:09

Kevin.a


1 Answers

The place order button is located in WooCommerce checkout/payment.php template file (line 51):

<?php echo apply_filters( 'woocommerce_order_button_html', '<button type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button>' ); ?>

Where $order_button_text = __("Place order", "woocommerce");

Now as this button is located inside the checkout <form> and if you duplicate it and you want it to work, it requires to be inside the checkout <form>.

So you can include it in any checkout template or using available hooks like for example:

add_action( 'woocommerce_checkout_after_order_review', 'second_place_order_button', 5 );
function second_place_order_button() {
    $order_button_text = apply_filters( 'woocommerce_order_button_text', __( "Place order", "woocommerce" ) );
    echo '<button type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button>';
}

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

The hook that you will use need to be located inside the checkout <form>.

like image 124
LoicTheAztec Avatar answered Sep 05 '25 07:09

LoicTheAztec