You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.9 KiB
98 lines
2.9 KiB
<?php
|
|
|
|
namespace XTS\Modules\Layouts;
|
|
|
|
class Checkout extends Layout_Type {
|
|
/**
|
|
* Before template content.
|
|
*/
|
|
public function before_template_content() {
|
|
get_header();
|
|
$content_class = woodmart_get_content_class();
|
|
?>
|
|
<div class="site-content <?php echo esc_attr( $content_class ); ?>" role="main">
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* After template content.
|
|
*/
|
|
public function after_template_content() {
|
|
?>
|
|
</div>
|
|
<?php
|
|
get_footer();
|
|
}
|
|
|
|
/**
|
|
* Check.
|
|
*
|
|
* @param array $condition Condition.
|
|
* @param string $type Layout type.
|
|
*/
|
|
public function check( $condition, $type = '' ) {
|
|
$is_active = false;
|
|
|
|
if ( 'checkout_form' === $type ) {
|
|
switch ( $condition['condition_type'] ) {
|
|
case 'checkout_form':
|
|
$is_active = ( is_checkout() && ! is_order_received_page() && ! is_wc_endpoint_url( 'order-pay' ) ) || ( is_singular( 'woodmart_layout' ) && Main::is_layout_type( 'checkout_content' ) );
|
|
break;
|
|
}
|
|
} elseif ( 'checkout_content' === $type ) {
|
|
switch ( $condition['condition_type'] ) {
|
|
case 'checkout_content':
|
|
$is_active = ( is_checkout() && ! is_order_received_page() && ! is_wc_endpoint_url( 'order-pay' ) ) || ( is_singular( 'woodmart_layout' ) && Main::is_layout_type( 'checkout_form' ) );
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $is_active;
|
|
}
|
|
|
|
/**
|
|
* Override templates.
|
|
*
|
|
* @param string $template Template.
|
|
*
|
|
* @return bool|string
|
|
*/
|
|
public function override_template( $template ) {
|
|
if ( woodmart_woocommerce_installed() && is_checkout() && ! is_order_received_page() && ! is_wc_endpoint_url( 'order-pay' ) && ( Main::get_instance()->has_custom_layout( 'checkout_content' ) || Main::get_instance()->has_custom_layout( 'checkout_form' ) ) ) {
|
|
$this->display_template();
|
|
|
|
return false;
|
|
}
|
|
|
|
return $template;
|
|
}
|
|
|
|
/**
|
|
* Display custom template on the shop page.
|
|
*/
|
|
private function display_template() {
|
|
$this->before_template_content();
|
|
?>
|
|
|
|
<?php if ( Main::get_instance()->has_custom_layout( 'checkout_content' ) ) : ?>
|
|
<?php $this->template_content( 'checkout_content' ); ?>
|
|
<?php else : ?>
|
|
<?php woocommerce_output_all_notices(); ?>
|
|
<?php woocommerce_checkout_coupon_form(); ?>
|
|
<?php woocommerce_checkout_login_form(); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php if ( function_exists( 'WC' ) && ! WC()->checkout()->is_registration_enabled() && WC()->checkout()->is_registration_required() && ! is_user_logged_in() ) : ?>
|
|
<?php echo wp_kses_post( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) ); ?>
|
|
<?php else : ?>
|
|
<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( wc_get_checkout_url() ); ?>" enctype="multipart/form-data">
|
|
<?php $this->template_content( 'checkout_form' ); ?>
|
|
</form>
|
|
<?php endif; ?>
|
|
|
|
<?php
|
|
$this->after_template_content();
|
|
}
|
|
}
|
|
|
|
Checkout::get_instance();
|
|
|