Home / eCommerce / met checkout redirection
Duplicate Snippet

Embed Snippet on Your Site

met checkout redirection

code to redirect checkout from meta to woocomm

sarah miller
<10
Code Preview
php
<?php
add_action('init', function () {
    add_rewrite_rule('^meta-checkout/?$', 'index.php?meta_checkout=1', 'top');
});
add_filter('query_vars', function ($vars) {
    $vars[] = 'meta_checkout';
    return $vars;
});
add_action('template_redirect', function () {
    if (!get_query_var('meta_checkout')) {
        return;
    }
    if (!function_exists('WC') || !WC()->cart) {
        return;
    }
    // Clear current cart so Meta checkout starts fresh.
    WC()->cart->empty_cart();
    /*
     * Expected URL format:
     * /meta-checkout/?products=123:1,456:2&coupon=SAVE10
     *
     * products = product_id:qty,product_id:qty
     * coupon   = optional coupon code
     */
    $products = isset($_GET['products']) ? sanitize_text_field(wp_unslash($_GET['products'])) : '';
    $coupon   = isset($_GET['coupon']) ? sanitize_text_field(wp_unslash($_GET['coupon'])) : '';
    if ($products) {
        $items = explode(',', $products);
        foreach ($items as $item) {
            $parts = explode(':', $item);
            $product_id = isset($parts[0]) ? absint($parts[0]) : 0;
            $qty        = isset($parts[1]) ? max(1, absint($parts[1])) : 1;
            if ($product_id > 0) {
                WC()->cart->add_to_cart($product_id, $qty);
            }
        }
    }
    if ($coupon) {
        WC()->cart->apply_coupon($coupon);
    }
    wp_safe_redirect(wc_get_checkout_url());
    exit;
});

Comments

Add a Comment