File: /home/salamatk/.trash/woodmart1/inc/modules/layouts/wpb/shortcodes/single-product/add-to-cart.php
<?php
/**
* Add to cart shortcode.
*
* @package Woodmart
*/
use XTS\Modules\Layouts\Global_Data as Builder;
use XTS\Modules\Layouts\Main;
use XTS\Modules\Waitlist\Frontend as Waitlist_Frontend;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Direct access not allowed.
}
if ( ! function_exists( 'woodmart_shortcode_single_product_add_to_cart' ) ) {
/**
* Single product add to cart shortcode.
*
* @param array $settings Shortcode attributes.
*/
function woodmart_shortcode_single_product_add_to_cart( $settings ) {
$default_settings = array(
'alignment' => 'left',
'button_design' => 'default',
'design' => 'default',
'swatch_layout' => 'default',
'reset_button_position' => 'side',
'label_position' => 'side',
'css' => '',
'width_desktop' => '',
'width_tablet' => '',
'width_mobile' => '',
'product_id' => false,
'enable_stock_status' => 'yes',
);
$settings = wp_parse_args( $settings, $default_settings );
if ( woodmart_get_opt( 'catalog_mode' ) || ! is_user_logged_in() && woodmart_get_opt( 'login_prices' ) ) {
return '';
}
$form_classes = '';
$wrapper_classes = apply_filters( 'vc_shortcodes_css_class', '', '', $settings );
// Form classes.
$form_classes .= ' wd-reset-' . woodmart_vc_get_control_data( $settings['reset_button_position'], 'desktop' ) . '-lg';
$form_classes .= ' wd-reset-' . woodmart_vc_get_control_data( $settings['reset_button_position'], 'mobile' ) . '-md';
$form_classes .= ' wd-label-' . woodmart_vc_get_control_data( $settings['label_position'], 'desktop' ) . '-lg';
$form_classes .= ' wd-label-' . woodmart_vc_get_control_data( $settings['label_position'], 'mobile' ) . '-md';
// Wrapper classes.
if ( $settings['css'] ) {
$wrapper_classes .= ' ' . vc_shortcode_custom_css_class( $settings['css'] );
}
$wrapper_classes .= ' text-' . woodmart_vc_get_control_data( $settings['alignment'], 'desktop' );
$wrapper_classes .= ' wd-btn-design-' . $settings['button_design'];
$wrapper_classes .= ' wd-design-' . $settings['design'];
$wrapper_classes .= ' wd-swatch-layout-' . $settings['swatch_layout'];
if ( 'justify' === $settings['design'] ) {
woodmart_enqueue_inline_style( 'woo-single-prod-el-add-to-cart-opt-design-justify-builder' );
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation' );
add_action( 'woocommerce_before_variations_form', 'woocommerce_single_variation' );
}
if ( 'no' === $settings['enable_stock_status'] ) {
$wrapper_classes .= ' wd-stock-status-off';
}
Builder::get_instance()->set_data( 'form_classes', $form_classes );
ob_start();
Main::setup_preview( array(), $settings['product_id'] );
global $product;
?>
<div class="wd-single-add-cart wd-wpb<?php echo esc_attr( $wrapper_classes ); ?>">
<?php woocommerce_template_single_add_to_cart(); ?>
<?php
if ( woodmart_get_opt( 'waitlist_enabled' ) && ( ! woodmart_get_opt( 'waitlist_for_loggined' ) || is_user_logged_in() ) ) {
$waitlist_frontend = Waitlist_Frontend::get_instance();
if ( ( 'variable' === $product->get_type() && ! empty( $waitlist_frontend->get_out_of_stock_variations_ids( $product ) ) ) || ( 'simple' === $product->get_type() && ! $product->is_in_stock() ) ) {
$waitlist_frontend->render_waitlist_subscribe_form();
$waitlist_frontend->render_template_subscribe_form();
}
}
?>
</div>
<?php
Main::restore_preview( $settings['product_id'] );
return ob_get_clean();
}
}