8889841cclass-astra-edd.php 0000644 00000112643 15044765713 0010247 0 ustar 00 ' . esc_html( $cart_title ) . '';
$cart_total_markup = '';
// Cart Title & Cart Cart total markup.
$cart_info_markup = sprintf(
'',
( $cart_title_display ) ? $cart_title_markup : '',
( $cart_total_display && $cart_title_display ) ? '/' : '',
( $cart_total_display ) ? $cart_total_markup : ''
);
$cart_items = count( edd_get_cart_contents() );
$cart_contents_count = $cart_items;
$cart_icon = sprintf(
'%4$s',
( $icon ) ? $icon : '',
( $cart_count_display ) ? '' : 'no-cart-total',
( $cart_count_display ) ? 'data-cart-total="' . $cart_contents_count . '"' : '',
( $icon ) ? ( ( false !== Astra_Icons::is_svg_icons() ) ? Astra_Icons::get_icons( $icon ) : '' ) : ''
);
// Theme's default icon with cart title and cart total.
if ( 'default' == $icon || ! defined( 'ASTRA_EXT_VER' ) || ( defined( 'ASTRA_EXT_VER' ) && ! Astra_Ext_Extension::is_active( 'edd' ) ) ) {
// Cart Total or Cart Title enable then only add markup.
if ( $cart_title_display || $cart_total_display ) {
echo $cart_info_markup; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
} else {
// Remove Default cart icon added by theme.
add_filter( 'astra_edd_default_header_cart_icon', '__return_false' );
/* translators: 1: Cart Title Markup, 2: Cart Icon Markup */
printf(
'
%1$s
%2$s
',
( $cart_title_display || $cart_total_display ) ? $cart_info_markup : '', // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
( $cart_icon ) ? $cart_icon : '' // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
);
}
}
/**
* Header Cart Icon Class
*
* @param array $classes Default argument array.
*
* @return array;
*/
public function header_cart_icon_class( $classes ) {
if ( false === Astra_Builder_Helper::$is_header_footer_builder_active && ! defined( 'ASTRA_EXT_VER' ) ) {
return $classes;
}
$header_cart_icon_style = astra_get_option( 'edd-header-cart-icon-style' );
$classes[] = 'ast-edd-menu-cart-' . $header_cart_icon_style;
$header_cart_icon_has_color = astra_get_option( 'edd-header-cart-icon-color' );
if ( ! empty( $header_cart_icon_has_color ) && ( 'none' !== $header_cart_icon_style ) ) {
$classes[] = 'ast-menu-cart-has-color';
}
return $classes;
}
/**
* Disable EDD style only for the first time
*
* @return void
*/
public function edd_set_defaults_initialization() {
$astra_theme_options = get_option( 'astra-settings' );
$edd_settings = get_option( 'edd_settings' );
// Set flag to set the EDD style disable only once for the very first time.
if ( ! isset( $astra_theme_options['ast-edd-disable-styles'] ) ) {
$astra_theme_options['ast-edd-disable-styles'] = true;
$edd_settings['disable_styles'] = true;
update_option( 'astra-settings', $astra_theme_options );
update_option( 'edd_settings', $edd_settings );
}
}
/**
* Single Product Navigation
*
* @param array $args single products navigation arguments.
*
* @return array $args single products navigation arguments.
*/
public function edd_single_post_navigation( $args ) {
$is_edd_single_product_page = astra_is_edd_single_product_page();
$disable_single_product_navigation = astra_get_option( 'disable-edd-single-product-nav' );
if ( $is_edd_single_product_page && ! $disable_single_product_navigation ) {
$next_post = get_next_post();
$prev_post = get_previous_post();
$next_text = false;
if ( $next_post ) {
$next_text = sprintf(
'%s →',
$next_post->post_title
);
}
$prev_text = false;
if ( $prev_post ) {
$prev_text = sprintf(
'← %s',
$prev_post->post_title
);
}
$args['prev_text'] = $prev_text;
$args['next_text'] = $next_text;
} elseif ( $is_edd_single_product_page && $disable_single_product_navigation ) {
$args['prev_text'] = false;
$args['next_text'] = false;
}
return $args;
}
/**
* EDD Initialization
*
* @return void
*/
public function edd_initialization() {
$is_edd_archive_page = astra_is_edd_archive_page();
$is_edd_single_product_page = astra_is_edd_single_product_page();
if ( $is_edd_archive_page ) {
add_action( 'astra_template_parts_content', array( $this, 'edd_content_loop' ) );
remove_action( 'astra_template_parts_content', array( Astra_Loop::get_instance(), 'template_parts_default' ) );
// Add edd wrapper.
add_action( 'astra_template_parts_content_top', array( $this, 'astra_edd_templat_part_wrap_open' ), 25 );
add_action( 'astra_template_parts_content_bottom', array( $this, 'astra_edd_templat_part_wrap_close' ), 5 );
// Remove closing and ending div 'ast-row'.
remove_action( 'astra_template_parts_content_top', array( Astra_Loop::get_instance(), 'astra_templat_part_wrap_open' ), 25 );
remove_action( 'astra_template_parts_content_bottom', array( Astra_Loop::get_instance(), 'astra_templat_part_wrap_close' ), 5 );
}
if ( $is_edd_single_product_page ) {
remove_action( 'astra_template_parts_content', array( Astra_Loop::get_instance(), 'template_parts_post' ) );
add_action( 'astra_template_parts_content', array( $this, 'edd_single_template' ) );
}
}
/**
* Add wrapper for edd archive pages
*
* @return void
*/
public function astra_edd_templat_part_wrap_open() {
?>
>
>
0 ) {
$classes = array_diff(
$classes,
array(
// Astra common grid.
'ast-col-sm-12',
'ast-col-md-8',
'ast-col-md-6',
'ast-col-md-12',
// Astra Blog / Single Post.
'ast-article-post',
'ast-article-single',
'ast-separate-posts',
'remove-featured-img-padding',
'ast-featured-post',
)
);
}
return $classes;
}
/**
* Add Cart icon markup
*
* @param String $output Markup.
* @param String $section Section name.
* @param String $section_type Section selected option.
* @return Markup String.
*
* @since 1.5.5
*/
public function astra_header_cart( $output, $section, $section_type ) {
if ( 'edd' === $section_type && apply_filters( 'astra_edd_header_cart_icon', true ) ) {
$output = $this->edd_mini_cart_markup();
}
return $output;
}
/**
* Easy Digital DOwnloads mini cart markup markup
*
* @since 1.5.5
* @return html
*/
public function edd_mini_cart_markup() {
$class = '';
if ( edd_is_checkout() ) {
$class = 'current-menu-item';
}
$cart_menu_classes = apply_filters( 'astra_edd_cart_in_menu_class', array( 'ast-menu-cart-with-border' ) );
ob_start();
if ( is_customize_preview() && ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) ) {
Astra_Builder_UI_Controller::render_customizer_edit_button();
}
?>
array(
'width' => '100%',
),
'.tablet-columns-2 .ast-edd-archive-article' => array(
'width' => '47.6%',
'width' => 'calc(50% - 10px)',
),
'.tablet-columns-3 .ast-edd-archive-article, .edd_downloads_list[class*="edd_download_columns_"] .edd_download' => array(
'width' => '30.2%',
'width' => 'calc(33.33% - 14px)',
),
'.tablet-columns-4 .ast-edd-archive-article' => array(
'width' => '21.5%',
'width' => 'calc(25% - 15px)',
),
'.tablet-columns-5 .ast-edd-archive-article' => array(
'width' => '16.2%',
'width' => 'calc(20% - 16px)',
),
'.tablet-columns-6 .ast-edd-archive-article' => array(
'width' => '12.7%',
'width' => 'calc(16.66% - 16.66px)',
),
);
} else {
$max_tablet_edd_css = array(
'.tablet-columns-1 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(1, 1fr)',
),
'.tablet-columns-2 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(2, 1fr)',
),
'.tablet-columns-3 .ast-edd-container, .edd_downloads_list[class*="edd_download_columns_"] .edd_download' => array(
'grid-template-columns' => 'repeat(3, 1fr)',
),
'.tablet-columns-4 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(4, 1fr)',
),
'.tablet-columns-5 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(5, 1fr)',
),
'.tablet-columns-6 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(6, 1fr)',
),
);
}
/* Parse CSS from array() -> max-width: (tablet-breakpoint) px & min-width: (mobile-breakpoint + 1) px */
$edd_css_output = astra_parse_css( $max_tablet_edd_css, astra_get_mobile_breakpoint( '', 1 ), astra_get_tablet_breakpoint() );
if ( ! Astra_Builder_Helper::apply_flex_based_css() ) {
if ( $is_site_rtl ) {
$max_tablet_edd_lang_direction_css = array(
'[class*="columns-"] .ast-edd-archive-article:nth-child(n)' => array(
'margin-left' => '20px',
'clear' => 'none',
),
'.tablet-columns-2 .ast-edd-archive-article:nth-child(2n), .tablet-columns-3 .ast-edd-archive-article:nth-child(3n), .tablet-columns-4 .ast-edd-archive-article:nth-child(4n), .tablet-columns-5 .ast-edd-archive-article:nth-child(5n), .tablet-columns-6 .ast-edd-archive-article:nth-child(6n), .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(3n)' => array(
'margin-left' => '0',
'clear' => 'left',
),
'.tablet-columns-2 .ast-edd-archive-article:nth-child(2n+1), .tablet-columns-3 .ast-edd-archive-article:nth-child(3n+1), .tablet-columns-4 .ast-edd-archive-article:nth-child(4n+1), .tablet-columns-5 .ast-edd-archive-article:nth-child(5n+1), .tablet-columns-6 .ast-edd-archive-article:nth-child(6n+1), .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(3n+1)' => array(
'clear' => 'right',
),
);
} else {
$max_tablet_edd_lang_direction_css = array(
'[class*="columns-"] .ast-edd-archive-article:nth-child(n)' => array(
'margin-right' => '20px',
'clear' => 'none',
),
'.tablet-columns-2 .ast-edd-archive-article:nth-child(2n), .tablet-columns-3 .ast-edd-archive-article:nth-child(3n), .tablet-columns-4 .ast-edd-archive-article:nth-child(4n), .tablet-columns-5 .ast-edd-archive-article:nth-child(5n), .tablet-columns-6 .ast-edd-archive-article:nth-child(6n), .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(3n)' => array(
'margin-right' => '0',
'clear' => 'right',
),
'.tablet-columns-2 .ast-edd-archive-article:nth-child(2n+1), .tablet-columns-3 .ast-edd-archive-article:nth-child(3n+1), .tablet-columns-4 .ast-edd-archive-article:nth-child(4n+1), .tablet-columns-5 .ast-edd-archive-article:nth-child(5n+1), .tablet-columns-6 .ast-edd-archive-article:nth-child(6n+1), .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(3n+1)' => array(
'clear' => 'left',
),
);
}
/* Parse CSS from array() -> max-width: (tablet-breakpoint) px & min-width: (mobile-breakpoint + 1) px */
$edd_css_output .= astra_parse_css( $max_tablet_edd_lang_direction_css, astra_get_mobile_breakpoint( '', 1 ), astra_get_tablet_breakpoint() );
}
if ( ! Astra_Builder_Helper::apply_flex_based_css() ) {
$mobile_edd_css = array(
'.mobile-columns-1 .ast-edd-archive-article' => array(
'width' => '100%',
),
'.mobile-columns-3 .ast-edd-archive-article' => array(
'width' => '28.2%',
'width' => 'calc(33.33% - 14px)',
),
'.mobile-columns-4 .ast-edd-archive-article' => array(
'width' => '19%',
'width' => 'calc(25% - 15px)',
),
'.mobile-columns-5 .ast-edd-archive-article' => array(
'width' => '13%',
'width' => 'calc(20% - 16px)',
),
'.mobile-columns-6 .ast-edd-archive-article' => array(
'width' => '10.2%',
'width' => 'calc(16.66% - 16.66px)',
),
'.edd_downloads_list[class*="edd_download_columns_"] .edd_download, .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(2n+1), .mobile-columns-2 .ast-edd-archive-article' => array(
'width' => '46.1%',
'width' => 'calc(50% - 10px)',
),
);
} else {
$mobile_edd_css = array(
'.mobile-columns-1 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(1, 1fr)',
),
'.mobile-columns-3 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(3, 1fr)',
),
'.mobile-columns-4 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(4, 1fr)',
),
'.mobile-columns-5 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(5, 1fr)',
),
'.mobile-columns-6 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(6, 1fr)',
),
'.edd_downloads_list[class*="edd_download_columns_"] .edd_download, .edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(2n+1), .mobile-columns-2 .ast-edd-container' => array(
'grid-template-columns' => 'repeat(2, 1fr)',
),
);
}
/* Parse CSS from array() -> max-width: (mobile-breakpoint) px */
$edd_css_output .= astra_parse_css( $mobile_edd_css, '', astra_get_mobile_breakpoint() );
if ( $is_site_rtl ) {
$mobile_edd_lang_direction_css = array(
'[class*="columns-"] .ast-edd-archive-article:nth-child(n)' => array(
'margin-left' => '20px',
'clear' => 'none',
),
'.mobile-columns-1 .ast-edd-archive-article:nth-child(n)' => array(
'margin-left' => '0',
),
'.edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(2n), .mobile-columns-2 .ast-edd-archive-article:nth-child(2n), .mobile-columns-3 .ast-edd-archive-article:nth-child(3n), .mobile-columns-4 .ast-edd-archive-article:nth-child(4n), .mobile-columns-5 .ast-edd-archive-article:nth-child(5n), .mobile-columns-6 .ast-edd-archive-article:nth-child(6n)' => array(
'margin-left' => '0',
'clear' => 'left',
),
'.mobile-columns-2 .ast-edd-archive-article:nth-child(2n+1), .mobile-columns-3 .ast-edd-archive-article:nth-child(3n+1), .mobile-columns-4 .ast-edd-archive-article:nth-child(4n+1), .mobile-columns-5 .ast-edd-archive-article:nth-child(5n+1), .mobile-columns-6 .ast-edd-archive-article:nth-child(6n+1)' => array(
'clear' => 'right',
),
);
} else {
$mobile_edd_lang_direction_css = array(
'[class*="columns-"] .ast-edd-archive-article:nth-child(n)' => array(
'margin-right' => '20px',
'clear' => 'none',
),
'.mobile-columns-1 .ast-edd-archive-article:nth-child(n)' => array(
'margin-right' => '0',
),
'.edd_downloads_list[class*="edd_download_columns_"] .edd_download:nth-child(2n), .mobile-columns-2 .ast-edd-archive-article:nth-child(2n), .mobile-columns-3 .ast-edd-archive-article:nth-child(3n), .mobile-columns-4 .ast-edd-archive-article:nth-child(4n), .mobile-columns-5 .ast-edd-archive-article:nth-child(5n), .mobile-columns-6 .ast-edd-archive-article:nth-child(6n)' => array(
'margin-right' => '0',
'clear' => 'right',
),
'.mobile-columns-2 .ast-edd-archive-article:nth-child(2n+1), .mobile-columns-3 .ast-edd-archive-article:nth-child(3n+1), .mobile-columns-4 .ast-edd-archive-article:nth-child(4n+1), .mobile-columns-5 .ast-edd-archive-article:nth-child(5n+1), .mobile-columns-6 .ast-edd-archive-article:nth-child(6n+1)' => array(
'clear' => 'left',
),
);
}
/* Parse CSS from array() -> max-width: (mobile-breakpoint) px */
$edd_css_output .= astra_parse_css( $mobile_edd_lang_direction_css, '', astra_get_mobile_breakpoint() );
wp_add_inline_style( 'astra-edd', apply_filters( 'astra_theme_edd_dynamic_css', $edd_css_output ) );
// Inline js for EDD Cart updates.
wp_add_inline_script(
'edd-ajax',
"jQuery( document ).ready( function($) {
/**
* Astra - Easy Digital Downloads Cart Quantity & Total Amount
*/
var cartQuantity = jQuery('.ast-edd-site-header-cart-wrap .count'),
iconQuantity = jQuery('.ast-edd-site-header-cart-wrap .astra-icon'),
cartTotalAmount = jQuery('.ast-edd-site-header-cart-wrap .ast-edd-header-cart-total');
jQuery('body').on('edd_cart_item_added', function( event, response ) {
cartQuantity.html( response.cart_quantity );
iconQuantity.attr('data-cart-total', response.cart_quantity );
cartTotalAmount.html( response.total );
});
jQuery('body').on('edd_cart_item_removed', function( event, response ) {
cartQuantity.html( response.cart_quantity );
iconQuantity.attr('data-cart-total', response.cart_quantity );
cartTotalAmount.html( response.total );
});
});"
);
}
/**
* Dynamic CSS
*
* @param string $dynamic_css Astra Dynamic CSS.
* @param string $dynamic_css_filtered Astra Dynamic CSS Filters.
* @since 1.5.5
* @return string $dynamic_css
*/
public function add_inline_styles( $dynamic_css, $dynamic_css_filtered = '' ) {
/**
* - Variable Declaration
*/
$site_content_width = astra_get_option( 'site-content-width', 1200 );
$edd_archive_width = astra_get_option( 'edd-archive-width' );
$edd_archive_max_width = astra_get_option( 'edd-archive-max-width' );
$css_output = '';
$theme_color = astra_get_option( 'theme-color' );
$link_color = astra_get_option( 'link-color', $theme_color );
$text_color = astra_get_option( 'text-color' );
$link_h_color = astra_get_option( 'link-h-color' );
$btn_color = astra_get_option( 'button-color' );
if ( empty( $btn_color ) ) {
$btn_color = astra_get_foreground_color( $theme_color );
}
$btn_h_color = astra_get_option( 'button-h-color' );
if ( empty( $btn_h_color ) ) {
$btn_h_color = astra_get_foreground_color( $link_h_color );
}
$btn_bg_h_color = astra_get_option( 'button-bg-h-color', $link_h_color );
$btn_border_radius_fields = astra_get_option( 'button-radius-fields' );
$cart_h_color = astra_get_foreground_color( $link_h_color );
$css_output = array(
// Loading effect color.
'a.edd-add-to-cart.white .edd-loading, .edd-discount-loader.edd-loading, .edd-loading-ajax.edd-loading' => array(
'border-left-color' => esc_attr( $cart_h_color ),
),
);
if ( false === Astra_Builder_Helper::$is_header_footer_builder_active ) {
$compat_css_desktop = array(
/**
* Cart in menu
*/
'.ast-edd-site-header-cart a' => array(
'color' => esc_attr( $text_color ),
),
'.ast-edd-site-header-cart a:focus, .ast-edd-site-header-cart a:hover, .ast-edd-site-header-cart .current-menu-item a' => array(
'color' => esc_attr( $text_color ),
),
'.ast-edd-cart-menu-wrap .count, .ast-edd-cart-menu-wrap .count:after' => array(
'border-color' => esc_attr( $link_color ),
'color' => esc_attr( $link_color ),
),
'.ast-edd-cart-menu-wrap:hover .count' => array(
'color' => esc_attr( $cart_h_color ),
'background-color' => esc_attr( $link_color ),
),
'.ast-edd-site-header-cart .widget_edd_cart_widget .cart-total' => array(
'color' => esc_attr( $link_color ),
),
'.ast-edd-site-header-cart .widget_edd_cart_widget .edd_checkout a, .widget_edd_cart_widget .edd_checkout a' => array(
'color' => $btn_h_color,
'border-color' => $btn_bg_h_color,
'background-color' => $btn_bg_h_color,
'border-top-left-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'top', 'desktop' ),
'border-top-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'right', 'desktop' ),
'border-bottom-right-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'bottom', 'desktop' ),
'border-bottom-left-radius' => astra_responsive_spacing( $btn_border_radius_fields, 'left', 'desktop' ),
),
'.site-header .ast-edd-site-header-cart .ast-edd-site-header-cart-widget .edd_checkout a, .site-header .ast-edd-site-header-cart .ast-edd-site-header-cart-widget .edd_checkout a:hover' => array(
'color' => $btn_color,
),
'.below-header-user-select .ast-edd-site-header-cart .widget, .ast-above-header-section .ast-edd-site-header-cart .widget a, .below-header-user-select .ast-edd-site-header-cart .widget_edd_cart_widget a' => array(
'color' => $text_color,
),
'.below-header-user-select .ast-edd-site-header-cart .widget_edd_cart_widget a:hover, .ast-above-header-section .ast-edd-site-header-cart .widget_edd_cart_widget a:hover, .below-header-user-select .ast-edd-site-header-cart .widget_edd_cart_widget a.remove:hover, .ast-above-header-section .ast-edd-site-header-cart .widget_edd_cart_widget a.remove:hover' => array(
'color' => esc_attr( $link_color ),
),
'.widget_edd_cart_widget a.edd-remove-from-cart:hover:after' => array(
'color' => esc_attr( $link_color ),
'border-color' => esc_attr( $link_color ),
'background-color' => esc_attr( '#ffffff' ),
),
);
$css_output = array_merge( $css_output, $compat_css_desktop );
}
/* Parse CSS from array() */
$css_output = astra_parse_css( $css_output );
/* Easy Digital DOwnloads Shop Archive width */
if ( 'custom' === $edd_archive_width ) :
// Easy Digital DOwnloads shop archive custom width.
$site_width = array(
'.ast-edd-archive-page .site-content > .ast-container' => array(
'max-width' => astra_get_css_value( $edd_archive_max_width, 'px' ),
),
);
$css_output .= astra_parse_css( $site_width, astra_get_tablet_breakpoint( '', 1 ) );
else :
// Easy Digital DOwnloads shop archive default width.
$site_width = array(
'.ast-edd-archive-page .site-content > .ast-container' => array(
'max-width' => astra_get_css_value( $site_content_width + 40, 'px' ),
),
);
/* Parse CSS from array()*/
$css_output .= astra_parse_css( $site_width, astra_get_tablet_breakpoint( '', 1 ) );
endif;
$dynamic_css .= apply_filters( 'astra_theme_edd_dynamic_css', $css_output );
return $dynamic_css;
}
/**
* Theme Defaults.
*
* @param array $defaults Array of options value.
* @return array
*/
public function theme_defaults( $defaults ) {
// Container.
$defaults['edd-ast-content-layout'] = 'normal-width-container';
// Sidebar.
$defaults['edd-general-sidebar-layout'] = 'default';
// Edd Archive.
$defaults['edd-archive-grids'] = array(
'desktop' => 4,
'tablet' => 3,
'mobile' => 2,
);
$defaults['edd-archive-product-structure'] = array(
'image',
'category',
'title',
'price',
'add_cart',
);
$defaults['edd-archive-add-to-cart-button-text'] = __( 'Add To Cart', 'astra' );
$defaults['edd-archive-variable-button'] = 'button';
$defaults['edd-archive-variable-button-text'] = __( 'View Details', 'astra' );
$defaults['edd-archive-width'] = 'default';
$defaults['edd-archive-max-width'] = 1200;
$defaults['disable-edd-single-product-nav'] = false;
return $defaults;
}
/**
* Add products item class to the body
*
* @param Array $classes product classes.
*
* @return array.
*/
public function edd_products_item_class( $classes = '' ) {
$is_edd_archive_page = astra_is_edd_archive_page();
if ( $is_edd_archive_page ) {
$shop_grid = astra_get_option( 'edd-archive-grids' );
$classes[] = 'columns-' . $shop_grid['desktop'];
$classes[] = 'tablet-columns-' . $shop_grid['tablet'];
$classes[] = 'mobile-columns-' . $shop_grid['mobile'];
$classes[] = 'ast-edd-archive-page';
}
return $classes;
}
/**
* Add class on single product page
*
* @param Array $classes product classes.
*
* @return array.
*/
public function edd_single_product_class( $classes ) {
$is_edd_archive_page = astra_is_edd_archive_page();
if ( $is_edd_archive_page ) {
$classes[] = 'ast-edd-archive-article';
}
return $classes;
}
/**
* Store widgets init.
*/
public function store_widgets_init() {
register_sidebar(
apply_filters(
'astra_edd_sidebar_init',
array(
'name' => esc_html__( 'Easy Digital Downloads Sidebar', 'astra' ),
'id' => 'astra-edd-sidebar',
'description' => __( 'This sidebar will be used on Product archive, Cart, Checkout and My Account pages.', 'astra' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
)
)
);
register_sidebar(
apply_filters(
'astra_edd_single_product_sidebar_init',
array(
'name' => esc_html__( 'EDD Single Product Sidebar', 'astra' ),
'id' => 'astra-edd-single-product-sidebar',
'description' => __( 'This sidebar will be used on EDD Single Product page.', 'astra' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
)
)
);
}
/**
* Assign shop sidebar for store page.
*
* @param String $sidebar Sidebar.
*
* @return String $sidebar Sidebar.
*/
public function replace_store_sidebar( $sidebar ) {
$is_edd_page = astra_is_edd_page();
$is_edd_single_product_page = astra_is_edd_single_product_page();
if ( $is_edd_page && ! $is_edd_single_product_page ) {
$sidebar = 'astra-edd-sidebar';
} elseif ( $is_edd_single_product_page ) {
$sidebar = 'astra-edd-single-product-sidebar';
}
return $sidebar;
}
/**
* Easy Digital Downloads Container
*
* @param String $sidebar_layout Layout type.
*
* @return String $sidebar_layout Layout type.
*/
public function store_sidebar_layout( $sidebar_layout ) {
$is_edd_page = astra_is_edd_page();
$is_edd_single_product_page = astra_is_edd_single_product_page();
$is_edd_archive_page = astra_is_edd_archive_page();
if ( $is_edd_page ) {
// Global.
$edd_sidebar = astra_get_option( 'site-sidebar-layout' );
if ( 'default' !== $edd_sidebar ) {
$sidebar_layout = $edd_sidebar;
}
// Customizer General.
$edd_customizer_sidebar = astra_get_option( 'edd-general-sidebar-layout' );
if ( 'default' !== $edd_customizer_sidebar ) {
$sidebar_layout = $edd_customizer_sidebar;
}
if ( $is_edd_single_product_page ) {
$edd_single_product_sidebar = astra_get_option( 'single-download-sidebar-layout' );
if ( 'default' !== $edd_single_product_sidebar ) {
$sidebar_layout = $edd_single_product_sidebar;
}
$page_id = get_the_ID();
$edd_sidebar_layout = get_post_meta( $page_id, 'site-sidebar-layout', true );
} elseif ( $is_edd_archive_page ) {
$edd_sidebar_layout = astra_get_option( 'archive-download-sidebar-layout' );
} else {
$edd_sidebar_layout = astra_get_option_meta( 'site-sidebar-layout', '', true );
}
if ( 'default' !== $edd_sidebar_layout && ! empty( $edd_sidebar_layout ) ) {
$sidebar_layout = $edd_sidebar_layout;
}
}
return $sidebar_layout;
}
/**
* Easy Digital Downloads Container
*
* @param String $layout Layout type.
*
* @return String $layout Layout type.
*/
public function store_content_layout( $layout ) {
$is_edd_page = astra_is_edd_page();
$is_edd_single_page = astra_is_edd_single_page();
$is_edd_archive_page = astra_is_edd_archive_page();
if ( $is_edd_page ) {
// Global.
$edd_layout = astra_toggle_layout( 'ast-site-content-layout', 'global', false );
if ( 'default' !== $edd_layout ) {
$layout = $edd_layout;
}
// Customizer General.
$edd_customizer_layout = astra_toggle_layout( 'edd-ast-content-layout', 'global', false );
if ( 'default' !== $edd_customizer_layout ) {
$layout = $edd_customizer_layout;
}
if ( $is_edd_single_page ) {
$edd_single_product_layout = astra_toggle_layout( 'single-download-ast-content-layout', 'single', false );
if ( 'default' !== $edd_single_product_layout ) {
$layout = $edd_single_product_layout;
}
$page_id = get_the_ID();
$edd_page_layout = get_post_meta( $page_id, 'site-content-layout', true );
} elseif ( $is_edd_archive_page ) {
$edd_page_layout = astra_toggle_layout( 'archive-download-ast-content-layout', 'archive', false );
} else {
$edd_page_layout = astra_get_option_meta( 'site-content-layout', '', true );
if ( isset( $edd_page_layout ) ) {
$edd_page_layout = astra_toggle_layout( 'ast-site-content-layout', 'meta', false, $edd_page_layout );
} else {
$edd_page_layout = astra_toggle_layout( 'ast-site-content-layout', 'meta', false );
}
}
if ( 'default' !== $edd_page_layout && ! empty( $edd_page_layout ) ) {
$layout = $edd_page_layout;
}
}
return $layout;
}
/**
* Register Customizer sections and panel for Easy Digital Downloads.
*
* @since 1.5.5
* @param WP_Customize_Manager $wp_customize Theme Customizer object.
*/
public function customize_register( $wp_customize ) {
// @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
/**
* Register Sections & Panels
*/
require ASTRA_THEME_DIR . 'inc/compatibility/edd/customizer/class-astra-customizer-register-edd-section.php';
/**
* Sections
*/
require ASTRA_THEME_DIR . 'inc/compatibility/edd/customizer/sections/class-astra-edd-container-configs.php';
require ASTRA_THEME_DIR . 'inc/compatibility/edd/customizer/sections/class-astra-edd-sidebar-configs.php';
require ASTRA_THEME_DIR . 'inc/compatibility/edd/customizer/sections/layout/class-astra-edd-archive-layout-configs.php';
require ASTRA_THEME_DIR . 'inc/compatibility/edd/customizer/sections/layout/class-astra-edd-single-product-layout-configs.php';
// @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
}
}
endif;
if ( apply_filters( 'astra_enable_edd_integration', true ) ) {
Astra_Edd::get_instance();
}
edd-common-functions.php 0000644 00000020672 15044765713 0011330 0 ustar 00 ';
do_action( 'astra_edd_archive_block_wrap_top' );
foreach ( $edd_structure as $value ) {
switch ( $value ) {
case 'title':
/**
* Add Product Title on edd page for all products.
*/
do_action( 'astra_edd_archive_title_before' );
do_action( 'astra_edd_archive_title' );
do_action( 'astra_edd_archive_title_after' );
break;
case 'image':
/**
* Add Product Title on edd page for all products.
*/
do_action( 'astra_edd_archive_image_before' );
do_action( 'astra_edd_archive_image' );
do_action( 'astra_edd_archive_image_after' );
break;
case 'price':
/**
* Add Product Price on edd page for all products.
*/
do_action( 'astra_edd_archive_price_before' );
do_action( 'astra_edd_archive_price' );
do_action( 'astra_edd_archive_price_after' );
break;
case 'short_desc':
/**
* Add Product short description on edd page for all products.
*/
do_action( 'astra_edd_archive_short_description_before' );
do_action( 'astra_edd_archive_short_description' );
do_action( 'astra_edd_archive_short_description_after' );
break;
case 'add_cart':
/**
* Add to cart on edd page for all products.
*/
do_action( 'astra_edd_archive_add_to_cart_before' );
do_action( 'astra_edd_archive_add_to_cart' );
do_action( 'astra_edd_archive_add_to_cart_after' );
break;
case 'category':
/**
* Add and/or Remove Categories from edd archive page.
*/
do_action( 'astra_edd_archive_category_before' );
do_action( 'astra_edd_archive_category' );
do_action( 'astra_edd_archive_category_after' );
break;
default:
break;
}
}
do_action( 'astra_edd_archive_block_wrap_bottom' );
echo '';
do_action( 'astra_edd_archive_after_block_wrap' );
}
}
add_action( 'astra_edd_archive_product_content', 'astra_edd_archive_product_structure' );
}
/**
* Returns list of Easy Digital Downloads Terms
*/
if ( ! function_exists( 'astra_edd_terms_list' ) ) {
/**
* Show EDD product terms
*
* @param string $taxonomy_name Taxonomy name.
* @return void
*/
function astra_edd_terms_list( $taxonomy_name ) {
$terms = get_terms( array( 'taxonomy' => $taxonomy_name ) );
?>
';
$output .= '' . esc_html( $variable_button_text ) . '';
$output .= '';
} else {
if ( ! empty( $add_to_cart_text ) ) {
$output = edd_get_purchase_link(
array(
'price' => false,
'text' => esc_html( $add_to_cart_text ),
)
);
}
}
return $output;
}
customizer/class-astra-customizer-register-edd-section.php 0000644 00000003517 15044765713 0020140 0 ustar 00 'section-edd-group',
'type' => 'section',
'title' => __( 'Easy Digital Downloads', 'astra' ),
'priority' => 60,
),
array(
'name' => 'section-edd-general',
'title' => __( 'General', 'astra' ),
'type' => 'section',
'section' => 'section-edd-group',
'priority' => 10,
),
array(
'name' => 'section-edd-archive',
'title' => __( 'Product Archive', 'astra' ),
'type' => 'section',
'section' => 'section-edd-group',
'priority' => 10,
),
array(
'name' => 'section-edd-single',
'type' => 'section',
'title' => __( 'Single Product', 'astra' ),
'section' => 'section-edd-group',
'priority' => 15,
),
);
return array_merge( $configurations, $configs );
}
}
}
new Astra_Customizer_Register_Edd_Section();
customizer/sections/class-astra-edd-sidebar-configs.php 0000644 00000007550 15044765713 0017337 0 ustar 00 ASTRA_THEME_SETTINGS . '[edd-general-sidebar-layout]',
'type' => 'control',
'control' => 'ast-radio-image',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_choices' ),
'section' => 'section-edd-general',
'default' => astra_get_option( 'edd-general-sidebar-layout' ),
'priority' => 6,
'title' => __( 'Sidebar Layout', 'astra' ),
'choices' => array(
'default' => array(
'label' => __( 'Default', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'layout-default', false ) : '',
),
'no-sidebar' => array(
'label' => __( 'No Sidebar', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'no-sidebar', false ) : '',
),
'left-sidebar' => array(
'label' => __( 'Left Sidebar', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'left-sidebar', false ) : '',
),
'right-sidebar' => array(
'label' => __( 'Right Sidebar', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'right-sidebar', false ) : '',
),
),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
),
/**
* Help Text: EDD Sidebar Layout.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-sidebar-layout-description]',
'type' => 'control',
'control' => 'ast-description',
'section' => 'section-edd-general',
'priority' => 6,
'title' => '',
'help' => __( 'Sidebar will only apply when container layout is set to normal.', 'astra' ),
'divider' => array( 'ast_class' => 'ast-bottom-spacing ast-section-divider' ),
'settings' => array(),
'hide' => ( ! Astra_Dynamic_CSS::astra_fullwidth_sidebar_support() ),
),
/**
* Option: EDD Sidebar Style.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-sidebar-style]',
'type' => 'control',
'control' => 'ast-selector',
'section' => 'section-edd-general',
'default' => astra_get_option( 'edd-sidebar-style', 'default' ),
'priority' => 6,
'title' => __( 'Sidebar Style', 'astra' ),
'choices' => array(
'default' => __( 'Default', 'astra' ),
'unboxed' => __( 'Unboxed', 'astra' ),
'boxed' => __( 'Boxed', 'astra' ),
),
'responsive' => false,
'renderAs' => 'text',
'divider' => array( 'ast_class' => 'ast-top-divider ast-top-spacing' ),
),
);
return array_merge( $configurations, $_configs );
}
}
}
new Astra_Edd_Sidebar_Configs();
customizer/sections/layout/class-astra-edd-archive-layout-configs.php 0000644 00000021227 15044765713 0022174 0 ustar 00 'ast-top-section-divider' );
/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$_configs = array(
/**
* Option: Shop Columns
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-grids]',
'type' => 'control',
'control' => 'ast-responsive-slider',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
'section' => 'section-edd-archive',
'default' => astra_get_option(
'edd-archive-grids',
array(
'desktop' => 4,
'tablet' => 3,
'mobile' => 2,
)
),
'priority' => 10,
'title' => __( 'Archive Columns', 'astra' ),
'input_attrs' => array(
'step' => 1,
'min' => 1,
'max' => 6,
),
'divider' => $grid_ast_divider,
'transport' => 'postMessage',
),
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-product-structure-divider]',
'section' => 'section-edd-archive',
'title' => __( 'Product Structure', 'astra' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 30,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: EDD Archive Post Meta
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-product-structure]',
'type' => 'control',
'control' => 'ast-sortable',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_multi_choices' ),
'section' => 'section-edd-archive',
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
'default' => astra_get_option( 'edd-archive-product-structure' ),
'priority' => 30,
'title' => __( 'Product Structure', 'astra' ),
'description' => __( 'The Image option cannot be sortable if the Product Style is selected to the List Style ', 'astra' ),
'choices' => array(
'image' => __( 'Image', 'astra' ),
'category' => __( 'Category', 'astra' ),
'title' => __( 'Title', 'astra' ),
'price' => __( 'Price', 'astra' ),
'short_desc' => __( 'Short Description', 'astra' ),
'add_cart' => __( 'Add To Cart', 'astra' ),
),
),
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-button-divider]',
'section' => 'section-edd-archive',
'title' => __( 'Buttons', 'astra' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 31,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing ast-bottom-spacing' ),
),
/**
* Option: Add to Cart button text
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-add-to-cart-button-text]',
'type' => 'control',
'control' => 'text',
'section' => 'section-edd-archive',
'default' => astra_get_option( 'edd-archive-add-to-cart-button-text' ),
'priority' => 31,
'title' => __( 'Cart Button Text', 'astra' ),
'context' => array(
Astra_Builder_Helper::$general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[edd-archive-product-structure]',
'operator' => 'contains',
'value' => 'add_cart',
),
),
'divider' => array( 'ast_class' => 'ast-top-spacing ast-bottom-section-divider' ),
),
/**
* Option: Variable product button
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-variable-button]',
'default' => astra_get_option( 'edd-archive-variable-button' ),
'section' => 'section-edd-archive',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Variable Product Button', 'astra' ),
'priority' => 31,
'choices' => array(
'button' => __( 'Button', 'astra' ),
'options' => __( 'Options', 'astra' ),
),
'transport' => 'refresh',
'renderAs' => 'text',
'responsive' => false,
'context' => array(
Astra_Builder_Helper::$general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[edd-archive-product-structure]',
'operator' => 'contains',
'value' => 'add_cart',
),
),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
),
/**
* Option: Variable product button text
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-variable-button-text]',
'type' => 'control',
'control' => 'text',
'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
'section' => 'section-edd-archive',
'default' => astra_get_option( 'edd-archive-variable-button-text' ),
'context' => array(
Astra_Builder_Helper::$general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[edd-archive-variable-button]',
'operator' => '==',
'value' => 'button',
),
),
'priority' => 31,
'title' => __( 'Variable Product Button Text', 'astra' ),
),
/**
* Option: Archive Content Width
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-width]',
'default' => astra_get_option( 'edd-archive-width' ),
'section' => 'section-edd-archive',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Archive Content Width', 'astra' ),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
'priority' => 220,
'choices' => array(
'default' => __( 'Default', 'astra' ),
'custom' => __( 'Custom', 'astra' ),
),
'transport' => 'postMessage',
'renderAs' => 'text',
'responsive' => false,
),
/**
* Option: Enter Width
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-archive-max-width]',
'type' => 'control',
'control' => 'ast-slider',
'section' => 'section-edd-archive',
'default' => astra_get_option( 'edd-archive-max-width' ),
'priority' => 225,
'context' => array(
Astra_Builder_Helper::$general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[edd-archive-width]',
'operator' => '===',
'value' => 'custom',
),
),
'title' => __( 'Custom Width', 'astra' ),
'transport' => 'postMessage',
'suffix' => 'px',
'input_attrs' => array(
'min' => 768,
'step' => 1,
'max' => 1920,
),
'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ),
),
);
// Learn More link if Astra Pro is not activated.
if ( astra_showcase_upgrade_notices() ) {
$_configs[] =
/**
* Option: Learn More about Contant Typography
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-product-archive-button-link]',
'type' => 'control',
'control' => 'ast-button-link',
'section' => 'section-edd-archive',
'priority' => 999,
'title' => __( 'View Astra Pro Features', 'astra' ),
'url' => ASTRA_PRO_CUSTOMIZER_UPGRADE_URL,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
);
}
$configurations = array_merge( $configurations, $_configs );
return $configurations;
}
}
}
new Astra_Edd_Archive_Layout_Configs();
customizer/sections/layout/class-astra-edd-single-product-layout-configs.php 0000644 00000002776 15044765713 0023522 0 ustar 00 ASTRA_THEME_SETTINGS . '[disable-edd-single-product-nav]',
'section' => 'section-edd-single',
'type' => 'control',
'control' => 'ast-toggle-control',
'default' => astra_get_option( 'disable-edd-single-product-nav' ),
'title' => __( 'Disable Product Navigation', 'astra' ),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
'priority' => 10,
),
);
return array_merge( $configurations, $_configs );
}
}
}
new Astra_Edd_Single_Product_Layout_Configs();
customizer/sections/class-astra-edd-container-configs.php 0000644 00000006657 15044765713 0017717 0 ustar 00 ASTRA_THEME_SETTINGS . '[edd-ast-content-layout]',
'type' => 'control',
'control' => 'ast-radio-image',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_choices' ),
'section' => 'section-edd-general',
'default' => astra_get_option( 'edd-ast-content-layout' ),
'priority' => 5,
'title' => __( 'Container Layout', 'astra' ),
'choices' => array(
'default' => array(
'label' => __( 'Default', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'layout-default', false ) : '',
),
'normal-width-container' => array(
'label' => __( 'Normal', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'normal-width-container', false ) : '',
),
'full-width-container' => array(
'label' => __( 'Full Width', 'astra' ),
'path' => ( class_exists( 'Astra_Builder_UI_Controller' ) ) ? Astra_Builder_UI_Controller::fetch_svg_icon( 'full-width-container', false ) : '',
),
),
'divider' => array( 'ast_class' => 'ast-bottom-spacing ast-bottom-divider' ),
),
/**
* Option: Content Style Option.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-content-style]',
'type' => 'control',
'control' => 'ast-selector',
'section' => 'section-edd-general',
'default' => astra_get_option( 'edd-content-style', 'default' ),
'priority' => 5,
'title' => __( 'Container Style', 'astra' ),
'choices' => array(
'default' => 'Default',
'unboxed' => 'Unboxed',
'boxed' => 'Boxed',
),
'renderAs' => 'text',
'responsive' => false,
),
/**
* Help Text: EDD Content Style Option.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[edd-content-style-description]',
'type' => 'control',
'control' => 'ast-description',
'section' => 'section-edd-general',
'priority' => 5,
'title' => '',
'help' => __( 'Container style will apply only when layout is set to either normal or narrow.', 'astra' ),
'settings' => array(),
),
);
return array_merge( $configurations, $_configs );
}
}
}
new Astra_Edd_Container_Configs();