diff options
Diffstat (limited to 'inc/compatibility/edd/edd-common-functions.php')
-rw-r--r-- | inc/compatibility/edd/edd-common-functions.php | 648 |
1 files changed, 324 insertions, 324 deletions
diff --git a/inc/compatibility/edd/edd-common-functions.php b/inc/compatibility/edd/edd-common-functions.php index 7bcbca6..7f030d0 100644 --- a/inc/compatibility/edd/edd-common-functions.php +++ b/inc/compatibility/edd/edd-common-functions.php @@ -1,324 +1,324 @@ -<?php
-/**
- * Custom functions that used for Easy Digital Downloads compatibility.
- *
- * @package Astra
- * @author Astra
- * @copyright Copyright (c) 2020, Astra
- * @link https://wpastra.com/
- * @since Astra 1.5.5
- */
-
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly.
-}
-
-/**
- * Current Page is EDD page
- */
-if ( ! function_exists( 'astra_is_edd_page' ) ) :
-
- /**
- * Check current page is an EDD page
- *
- * @since 1.5.5
- * @return bool true | false
- */
- function astra_is_edd_page() {
- if (
- is_singular( 'download' ) ||
- is_post_type_archive( 'download' ) ||
- is_tax( 'download_category' ) ||
- is_tax( 'download_tag' ) ||
- edd_is_checkout() ||
- edd_is_success_page() ||
- edd_is_failed_transaction_page() ||
- edd_is_purchase_history_page()
- ) {
- return true;
- }
- return false;
- }
-
-endif;
-
-/**
- * Current Page is EDD single page
- */
-if ( ! function_exists( 'astra_is_edd_single_page' ) ) :
-
- /**
- * Check current page is an EDD single page
- *
- * @since 1.5.5
- * @return bool true | false
- */
- function astra_is_edd_single_page() {
- if (
- is_singular( 'download' ) ||
- edd_is_checkout() ||
- edd_is_success_page() ||
- edd_is_failed_transaction_page() ||
- edd_is_purchase_history_page()
- ) {
- return true;
- }
- return false;
- }
-
-endif;
-
-/**
- * Current Page is EDD archive page
- */
-if ( ! function_exists( 'astra_is_edd_archive_page' ) ) :
-
- /**
- * Check current page is an EDD archive page
- *
- * @since 1.5.5
- * @return bool true | false
- */
- function astra_is_edd_archive_page() {
- if (
- is_post_type_archive( 'download' ) ||
- is_tax( 'download_category' ) ||
- is_tax( 'download_tag' )
- ) {
- return true;
- }
- return false;
- }
-
-endif;
-
-
-/**
- * Current Page is EDD single Product page
- */
-if ( ! function_exists( 'astra_is_edd_single_product_page' ) ) :
-
- /**
- * Check current page is an EDD single product page
- *
- * @since 1.5.5
- * @return bool true | false
- */
- function astra_is_edd_single_product_page() {
- if ( is_singular( 'download' ) ) {
- return true;
- }
- return false;
- }
-
-endif;
-
-if ( ! function_exists( 'astra_edd_archive_product_structure' ) ) {
-
- /**
- * Show the product title in the product loop. By default this is an H2.
- */
- function astra_edd_archive_product_structure() {
- $edd_structure = apply_filters( 'astra_edd_archive_product_structure', astra_get_option( 'edd-archive-product-structure' ) );
-
- if ( is_array( $edd_structure ) && ! empty( $edd_structure ) ) {
-
- do_action( 'astra_edd_archive_before_block_wrap' );
- echo '<div class="ast-edd-archive-block-wrap">';
- 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 '</div>';
- 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( $taxonomy_name );
- ?>
- <div class="ast-edd-download-categories">
- <?php foreach ( $terms as $term ) : ?>
- <a href="<?php echo esc_url( get_term_link( $term, $taxonomy_name ) ); ?>" title="<?php echo esc_attr( $term->name ); ?>"> <?php echo esc_html( $term->name ); ?> </a>
- <?php endforeach; ?>
- </div>
- <?php
- }
-}
-
-if ( ! function_exists( 'astra_edd_archive_product_title' ) ) {
- /**
- * Show EDD archive product title
- *
- * @return void
- */
- function astra_edd_archive_product_title() {
- edd_get_template_part( 'shortcode', 'content-title' );
- }
-
- add_action( 'astra_edd_archive_title', 'astra_edd_archive_product_title' );
-}
-
-if ( ! function_exists( 'astra_edd_archive_product_image' ) ) {
- /**
- * Show EDD archive product image
- *
- * @return void
- */
- function astra_edd_archive_product_image() {
- edd_get_template_part( 'shortcode', 'content-image' );
- }
-
- add_action( 'astra_edd_archive_image', 'astra_edd_archive_product_image' );
-}
-
-if ( ! function_exists( 'astra_edd_archive_product_price' ) ) {
- /**
- * Show EDD archive product price
- *
- * @return void
- */
- function astra_edd_archive_product_price() {
- edd_get_template_part( 'shortcode', 'content-price' );
- }
-
- add_action( 'astra_edd_archive_price', 'astra_edd_archive_product_price' );
-}
-
-if ( ! function_exists( 'astra_edd_archive_product_short_description' ) ) {
- /**
- * Show EDD archive product description
- *
- * @return void
- */
- function astra_edd_archive_product_short_description() {
- edd_get_template_part( 'shortcode', 'content-excerpt' );
- }
-
- add_action( 'astra_edd_archive_short_description', 'astra_edd_archive_product_short_description' );
-}
-
-if ( ! function_exists( 'astra_edd_archive_product_add_to_cart' ) ) {
- /**
- * Show EDD archive product add to cart
- *
- * @return void
- */
- function astra_edd_archive_product_add_to_cart() {
- echo astra_edd_cart_button_markup(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- }
-
- add_action( 'astra_edd_archive_add_to_cart', 'astra_edd_archive_product_add_to_cart' );
-}
-
-
-if ( ! function_exists( 'astra_edd_archive_product_category' ) ) {
- /**
- * Show EDD archive product category
- *
- * @return void
- */
- function astra_edd_archive_product_category() {
- echo astra_edd_terms_list( 'download_category' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- }
-
- add_action( 'astra_edd_archive_category', 'astra_edd_archive_product_category' );
-}
-
-
-/**
- * EDD archive page Cart button markup
- *
- * @return array $output Add to cart button markup
- */
-function astra_edd_cart_button_markup() {
- $variable_button = astra_get_option( 'edd-archive-variable-button' );
- $add_to_cart_text = astra_get_option( 'edd-archive-add-to-cart-button-text' );
- $variable_button_text = astra_get_option( 'edd-archive-variable-button-text' );
- $output = edd_get_purchase_link();
- if ( edd_has_variable_prices( get_the_ID() ) && 'button' == $variable_button ) {
- $output = '<div class="ast-edd-variable-details-button-wrap">';
- $output .= '<a class="button ast-edd-variable-btn" href="' . esc_url( get_permalink() ) . '">' . esc_html( $variable_button_text ) . '</a>';
- $output .= '</div>';
- } else {
- if ( ! empty( $add_to_cart_text ) ) {
- $output = edd_get_purchase_link(
- array(
- 'price' => false,
- 'text' => esc_html( $add_to_cart_text ),
- )
- );
- }
- }
-
- return $output;
-}
+<?php +/** + * Custom functions that used for Easy Digital Downloads compatibility. + * + * @package Astra + * @author Astra + * @copyright Copyright (c) 2020, Astra + * @link https://wpastra.com/ + * @since Astra 1.5.5 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. +} + +/** + * Current Page is EDD page + */ +if ( ! function_exists( 'astra_is_edd_page' ) ) : + + /** + * Check current page is an EDD page + * + * @since 1.5.5 + * @return bool true | false + */ + function astra_is_edd_page() { + if ( + is_singular( 'download' ) || + is_post_type_archive( 'download' ) || + is_tax( 'download_category' ) || + is_tax( 'download_tag' ) || + edd_is_checkout() || + edd_is_success_page() || + edd_is_failed_transaction_page() || + edd_is_purchase_history_page() + ) { + return true; + } + return false; + } + +endif; + +/** + * Current Page is EDD single page + */ +if ( ! function_exists( 'astra_is_edd_single_page' ) ) : + + /** + * Check current page is an EDD single page + * + * @since 1.5.5 + * @return bool true | false + */ + function astra_is_edd_single_page() { + if ( + is_singular( 'download' ) || + edd_is_checkout() || + edd_is_success_page() || + edd_is_failed_transaction_page() || + edd_is_purchase_history_page() + ) { + return true; + } + return false; + } + +endif; + +/** + * Current Page is EDD archive page + */ +if ( ! function_exists( 'astra_is_edd_archive_page' ) ) : + + /** + * Check current page is an EDD archive page + * + * @since 1.5.5 + * @return bool true | false + */ + function astra_is_edd_archive_page() { + if ( + is_post_type_archive( 'download' ) || + is_tax( 'download_category' ) || + is_tax( 'download_tag' ) + ) { + return true; + } + return false; + } + +endif; + + +/** + * Current Page is EDD single Product page + */ +if ( ! function_exists( 'astra_is_edd_single_product_page' ) ) : + + /** + * Check current page is an EDD single product page + * + * @since 1.5.5 + * @return bool true | false + */ + function astra_is_edd_single_product_page() { + if ( is_singular( 'download' ) ) { + return true; + } + return false; + } + +endif; + +if ( ! function_exists( 'astra_edd_archive_product_structure' ) ) { + + /** + * Show the product title in the product loop. By default this is an H2. + */ + function astra_edd_archive_product_structure() { + $edd_structure = apply_filters( 'astra_edd_archive_product_structure', astra_get_option( 'edd-archive-product-structure' ) ); + + if ( is_array( $edd_structure ) && ! empty( $edd_structure ) ) { + + do_action( 'astra_edd_archive_before_block_wrap' ); + echo '<div class="ast-edd-archive-block-wrap">'; + 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 '</div>'; + 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( $taxonomy_name ); + ?> + <div class="ast-edd-download-categories"> + <?php foreach ( $terms as $term ) : ?> + <a href="<?php echo esc_url( get_term_link( $term, $taxonomy_name ) ); ?>" title="<?php echo esc_attr( $term->name ); ?>"> <?php echo esc_html( $term->name ); ?> </a> + <?php endforeach; ?> + </div> + <?php + } +} + +if ( ! function_exists( 'astra_edd_archive_product_title' ) ) { + /** + * Show EDD archive product title + * + * @return void + */ + function astra_edd_archive_product_title() { + edd_get_template_part( 'shortcode', 'content-title' ); + } + + add_action( 'astra_edd_archive_title', 'astra_edd_archive_product_title' ); +} + +if ( ! function_exists( 'astra_edd_archive_product_image' ) ) { + /** + * Show EDD archive product image + * + * @return void + */ + function astra_edd_archive_product_image() { + edd_get_template_part( 'shortcode', 'content-image' ); + } + + add_action( 'astra_edd_archive_image', 'astra_edd_archive_product_image' ); +} + +if ( ! function_exists( 'astra_edd_archive_product_price' ) ) { + /** + * Show EDD archive product price + * + * @return void + */ + function astra_edd_archive_product_price() { + edd_get_template_part( 'shortcode', 'content-price' ); + } + + add_action( 'astra_edd_archive_price', 'astra_edd_archive_product_price' ); +} + +if ( ! function_exists( 'astra_edd_archive_product_short_description' ) ) { + /** + * Show EDD archive product description + * + * @return void + */ + function astra_edd_archive_product_short_description() { + edd_get_template_part( 'shortcode', 'content-excerpt' ); + } + + add_action( 'astra_edd_archive_short_description', 'astra_edd_archive_product_short_description' ); +} + +if ( ! function_exists( 'astra_edd_archive_product_add_to_cart' ) ) { + /** + * Show EDD archive product add to cart + * + * @return void + */ + function astra_edd_archive_product_add_to_cart() { + echo astra_edd_cart_button_markup(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + + add_action( 'astra_edd_archive_add_to_cart', 'astra_edd_archive_product_add_to_cart' ); +} + + +if ( ! function_exists( 'astra_edd_archive_product_category' ) ) { + /** + * Show EDD archive product category + * + * @return void + */ + function astra_edd_archive_product_category() { + echo astra_edd_terms_list( 'download_category' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + } + + add_action( 'astra_edd_archive_category', 'astra_edd_archive_product_category' ); +} + + +/** + * EDD archive page Cart button markup + * + * @return array $output Add to cart button markup + */ +function astra_edd_cart_button_markup() { + $variable_button = astra_get_option( 'edd-archive-variable-button' ); + $add_to_cart_text = astra_get_option( 'edd-archive-add-to-cart-button-text' ); + $variable_button_text = astra_get_option( 'edd-archive-variable-button-text' ); + $output = edd_get_purchase_link(); + if ( edd_has_variable_prices( get_the_ID() ) && 'button' == $variable_button ) { + $output = '<div class="ast-edd-variable-details-button-wrap">'; + $output .= '<a class="button ast-edd-variable-btn" href="' . esc_url( get_permalink() ) . '">' . esc_html( $variable_button_text ) . '</a>'; + $output .= '</div>'; + } else { + if ( ! empty( $add_to_cart_text ) ) { + $output = edd_get_purchase_link( + array( + 'price' => false, + 'text' => esc_html( $add_to_cart_text ), + ) + ); + } + } + + return $output; +} |