# king-addons/51.1.87/includes/widgets/Woo_Checkout_Place_Order/script.js

King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder, version 51.1.87. 48 lines.

- Page: https://pluginprobe.com/plugins/king-addons/51.1.87/code/includes/widgets/Woo_Checkout_Place_Order/script.js
- Raw: https://pluginprobe.com/plugins/king-addons/51.1.87/raw/includes/widgets/Woo_Checkout_Place_Order/script.js
- Modified: 2026-09-28T10:54:44+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/king-addons/51.1.87/code/includes/widgets/Woo_Checkout_Place_Order/script.js#L10-L20`.

```javascript
/**
 * Woo Checkout Place Order widget behaviour.
 *
 * The button carries form="checkout", but WooCommerce's checkout form has no
 * id - only name="checkout" and class="checkout". An unresolvable form
 * attribute makes a submit button inert, so a button placed outside the form
 * did nothing at all. Give the form an id and point the buttons at it.
 */
(function () {
    'use strict';

    const FORM_ID = 'ka-woo-checkout-form';

    const attach = () => {
        const buttons = document.querySelectorAll('.ka-woo-checkout-place-order__btn');
        if (!buttons.length) {
            return;
        }

        const form = document.querySelector('form.woocommerce-checkout, form.checkout[name="checkout"]');
        if (!form) {
            return;
        }

        if (!form.id) {
            form.id = FORM_ID;
        }

        buttons.forEach((button) => {
            if (button.form === form) {
                return;
            }
            button.setAttribute('form', form.id);
        });
    };

    document.addEventListener('DOMContentLoaded', attach);

    // The checkout markup is re-rendered on every update_order_review call.
    if (window.jQuery) {
        window.jQuery(document.body).on('updated_checkout', attach);
    }

    if (window.elementorFrontend && window.elementorFrontend.hooks) {
        window.elementorFrontend.hooks.addAction('frontend/element_ready/woo_checkout_place_order.default', attach);
    }
})();

```
