HEX
Server: LiteSpeed
System: Linux server53.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64
User: nahevttf (6494)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /home/nahevttf/public_html/wp-content/themes/woodmart/inc/integrations/woo-preview-emails.php
<?php
/**
 * Preview E-mails for WooCommerce.
 *
 * @package woodmart
 */

use XTS\WC_Wishlist\Ui;

if ( ! defined( 'WOO_PREVIEW_EMAILS_DIR' ) ) {
	return;
}

if ( ! function_exists( 'woodmart_woo_preview_update_order' ) ) {
	/**
	 * Update order.
	 *
	 * @param mixed   $additional_data Additional data.
	 * @param string  $index Email index.
	 * @param integer $order_id Order ID.
	 * @param object  $current_email Emails data.
	 *
	 * @return bool|void
	 */
	function woodmart_woo_preview_update_order( $additional_data, $index, $order_id, $current_email ) {
		if ( 'woodmart_wishlist_back_in_stock' === $index || 'woodmart_wishlist_on_sale_products' === $index ) {
			return true;
		}

		return $additional_data;
	}

	add_filter( 'woo_preview_additional_orderID', 'woodmart_woo_preview_update_order', 10, 4 );
}

if ( ! function_exists( 'woodmart_woo_preview_order_trigger' ) ) {
	/**
	 * Trigger emails content.
	 *
	 * @param object $current_email Emails data.
	 * @param mixed  $additional_data Additional data.
	 *
	 * @return void
	 */
	function woodmart_woo_preview_order_trigger( $current_email, $additional_data ) {
		$user_id = get_current_user_id();

		if ( 'woodmart_back_in_stock_email' === $current_email->id ) {
			$products_back_in_stock = get_option( 'woodmart_wishlist_products_back_in_stock' );

			if ( ! $products_back_in_stock || empty( $products_back_in_stock[ $user_id ] ) ) {
				$args  = array(
					'posts_per_page' => 4,
					'post_type'      => 'product',
					'orderby'        => 'rand',
				);
				$query = new WP_Query( $args );

				if ( ! isset( $query->posts ) ) {
					return;
				}

				foreach ( $query->posts as $post ) {
					$products_back_in_stock[ $user_id ][] = $post->ID;
				}
			}

			do_action( 'woodmart_send_back_in_stock_mail', $user_id, $products_back_in_stock[ $user_id ] );
		} elseif ( 'woodmart_on_sale_products_email' === $current_email->id ) {
			$ui                  = Ui::get_instance();
			$products_on_sales   = array();
			$product_ids_on_sale = wc_get_product_ids_on_sale();

			if ( $ui->get_wishlist() ) {
				$wishlist_products = $ui->get_wishlist()->get_all();

				foreach ( $wishlist_products as $product_data ) {
					if ( in_array( $product_data['product_id'], $product_ids_on_sale ) ) { //phpcs:ignore
						$products_on_sales[ $product_data['product_id'] ] = $product_data['product_id'];
					}
				}
			}

			if ( $products_on_sales ) {
				$args  = array(
					'posts_per_page' => 4,
					'post_type'      => 'product',
					'orderby'        => 'rand',
				);
				$query = new WP_Query( $args );

				if ( ! isset( $query->posts ) ) {
					return;
				}

				foreach ( $query->posts as $post ) {
					$products_on_sales[] = $post->ID;
				}
			}

			do_action( 'woodmart_send_on_sale_products_mail', $user_id, $products_on_sales );
		}
	}

	add_action( 'woo_preview_additional_order_trigger', 'woodmart_woo_preview_order_trigger', 10, 2 );
}