isSetUp()) { return $actions; } $providerName = strtolower($provider->getServiceName()); $form = ''; $form .= self::templates($providerName); $actions[] = [ 'button' => self::toggleButton(), 'content' => $form, ]; return $actions; } /***************************************************************** * SECTIONS *****************************************************************/ /** * Checkout tab content: customer info + payment container */ private static function checkoutContent(string $provider): string { $fields = '

Customer Information

' . Form::render('cart_name', null, [ 'type' => 'text', 'label' => 'Your Name', 'required' => true, 'autocomplete' => 'name', ]) . Form::render('cart_email', null, [ 'type' => 'email', 'label' => 'Your Email', 'required' => true, 'autocomplete' => 'email', ]) . Form::render('cart_phone', null, [ 'type' => 'tel', 'label' => 'Your Phone', 'required' => true, 'autocomplete' => 'phone', ]); // Optional sections — integrations can add pickup, scheduling, etc. $fields .= apply_filters('jvb_checkout_fields', '', $provider); $fields .= '
'; // Payment section — provider JS mounts its own UI inside #payment-container $fields .= '

Payment Information

'; return $fields; } /** * Cart items tab: table + account details */ private static function cartContent(): string { ob_start(); ?>
Item Price Total
Log in to save your favourites and view order history.'; } ?> [ 'title' => 'Order History', 'icon' => 'checkout', 'description' => 'View your past orders and quickly reorder', 'content' => apply_filters('jvb_checkout_order_history', ''), ], 'favourites' => [ 'title' => 'Favourites', 'icon' => 'heart', 'description' => 'View your favourites', 'content' => apply_filters('jvb_checkout_favourites', ''), ], ]; jvbRenderTabs($tabs); } ?>
'Order Received', 'preparing' => 'Preparing', 'ready' => 'Ready for Pickup', ]); ob_start(); ?>

Order Confirmed!

Order #

$label): ?>
Estimated pickup: Calculating...

Looks like we left things hanging

We\'ve restored your cart from your last session below.

If you\'d rather start over, click the button below.

'; } /** * Cart toggle button */ private static function toggleButton(): string { return ''; } }