File: //var/www/drakkar_site/wp-content/themes/blocksy/inc/components/woocommerce/common/checkout.php
<?php
namespace Blocksy;
class WooCommerceCheckout {
public function __construct() {
add_action('wp', function () {
if (! blocksy_get_theme_mod('blocksy_has_checkout_coupon', false)) {
remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);
}
});
add_action('elementor/widget/before_render_content', function($widget) {
if (
(
class_exists('Elementor\Jet_Woo_Builder_Checkout_Order_Review')
&&
$widget instanceof \Elementor\Jet_Woo_Builder_Checkout_Order_Review
)
||
(
class_exists('ElementorPro\Modules\Woocommerce\Widgets\Checkout')
&&
$widget instanceof \ElementorPro\Modules\Woocommerce\Widgets\Checkout
)
) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}
if (
class_exists('ElementorPro\Modules\Woocommerce\Widgets\Checkout')
&&
$widget instanceof ElementorPro\Modules\Woocommerce\Widgets\Checkout
) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}
}, 10, 1);
add_action('woocommerce_before_checkout_form', function () {
add_action('sellkit_checkout_one_page_express_methods', function() {
global $ct_skip_checkout;
$ct_skip_checkout = true;
});
if (function_exists('wcmultichecout_woocommerce_locate_template')) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}
add_action('kco_wc_before_wrapper', function() {
global $ct_skip_checkout;
$ct_skip_checkout = true;
});
add_action( 'wc_dibs_before_checkout_form', function() {
global $ct_skip_checkout;
$ct_skip_checkout = true;
});
if (class_exists('Svea_Checkout_For_Woocommerce\Template_Handler')) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}
}, 10, 1);
add_action('wpfunnels/before_gb_checkout_form', function($widget) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}, 10 , 1);
add_action('cfw_checkout_main_container_start', function($widget) {
global $ct_skip_checkout;
$ct_skip_checkout = true;
}, 10, 1);
add_action('woocommerce_sco_before_checkout_page', function() {
global $ct_skip_checkout;
$ct_skip_checkout = true;
});
add_action('wp', function () {
if (! $this->has_custom_checkout()) {
return;
}
add_action('woocommerce_checkout_before_customer_details', function () {
global $ct_skip_checkout;
if ($ct_skip_checkout) {
return;
}
echo '<div class="ct-customer-details">';
}, PHP_INT_MIN);
add_action('woocommerce_checkout_after_customer_details', function () {
global $ct_skip_checkout;
if ($ct_skip_checkout) {
return;
}
echo '</div>';
}, PHP_INT_MAX);
add_action('woocommerce_checkout_before_order_review_heading', function () {
global $ct_skip_checkout;
if ($ct_skip_checkout) {
return;
}
echo '<div class="ct-order-review">';
}, PHP_INT_MIN);
add_action('woocommerce_checkout_after_order_review', function () {
global $ct_skip_checkout;
if ($ct_skip_checkout) {
return;
}
echo '</div>';
}, PHP_INT_MAX);
});
add_action(
'woocommerce_before_template_part',
function ($template_name, $template_path, $located, $args) {
if ($template_name !== 'checkout/form-checkout.php') {
return;
}
ob_start();
},
1,
4
);
add_action(
'woocommerce_after_template_part',
function ($template_name, $template_path, $located, $args) {
if ($template_name !== 'checkout/form-checkout.php') {
return;
}
$result = ob_get_clean();
global $ct_skip_checkout;
if ($this->has_custom_checkout() && ! $ct_skip_checkout) {
$form_reader = new \WP_HTML_Tag_Processor($result);
if (
$form_reader->next_tag([
'tag_name' => 'form',
'class_name' => 'woocommerce-checkout',
])
) {
$form_reader->add_class('ct-woocommerce-checkout');
$result = $form_reader->get_updated_html();
}
}
if (class_exists('Woocommerce_German_Market')) {
$search = '/' . preg_quote('<h3 id="order_review_heading">', '/') . '/';
$result = preg_replace(
$search,
'<div class="ct-order-review"><h3 id="order_review_heading">',
$result,
1
);
}
echo $result;
},
1,
4
);
add_action(
'woocommerce_before_template_part',
function ($template_name, $template_path, $located, $args) {
if ($template_name !== 'cart/cart-shipping.php') {
return;
}
ob_start();
},
1,
4
);
add_action(
'woocommerce_after_template_part',
function ($template_name, $template_path, $located, $args) {
if ($template_name !== 'cart/cart-shipping.php') {
return;
}
$result = ob_get_clean();
// drop the first column
$result = preg_replace(
'/<th>.+?<\/th>/',
'',
$result
);
// add option title, collspan and remove data-title
echo preg_replace(
'/(<td data-title=".*>)/',
'<td colspan="2">' . blocksy_html_tag(
'div',
[
'class' => 'ct-shipping-heading'
],
$args['package_name']
),
$result
);
},
1,
4
);
}
public function has_custom_checkout() {
$has_custom_checkout = true;
if (class_exists('FluidCheckout')) {
$has_custom_checkout = false;
}
if (class_exists('WFFN_Core')) {
$has_custom_checkout = false;
}
global $post;
if ($post && $post->post_type === 'cartflows_step') {
$has_custom_checkout = false;
}
$has_custom_checkout = apply_filters(
'blocksy:woocommerce:checkout:has-custom-markup',
$has_custom_checkout
);
return $has_custom_checkout;
}
}