<?php
/**
 * Pagination - Show numbered pagination for catalog pages
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/loop/pagination.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     9.3.0
 */

use XTS\Modules\Layouts\Global_Data;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

global $wp_query;

$total   = isset( $total ) ? $total : wc_get_loop_prop( 'total_pages' );
$current = isset( $current ) ? $current : wc_get_loop_prop( 'current_page' );
$base    = isset( $base ) ? $base : esc_url_raw( str_replace( 999999999, '%#%', remove_query_arg( 'add-to-cart', get_pagenum_link( 999999999, false ) ) ) );
$format  = isset( $format ) ? $format : '';

// Show pagination in Gutenberg and Elementor editor preview.
if ( woodmart_is_builder_editor_preview() ) {
	$total = 2;
}

if ( $total <= 1 ) {
	return;
}

if ( Global_Data::get_instance()->get_data( 'shop_pagination' ) ) {
	$pagination = Global_Data::get_instance()->get_data( 'shop_pagination' );
} else {
	$pagination = woodmart_loop_prop( 'shop_pagination' );
}

// fix bug with wrong escaped url generated by next_posts() call.
if ( is_search() ) {
	$pagination = 'pagination';
}

if ( function_exists( 'wcfm_is_store_page' ) && wcfm_is_store_page() ) {
	$pagination = 'pagination';
}

?>
<?php if ( $pagination ) : ?>
	<?php wp_enqueue_script( 'imagesloaded' ); ?>
	<?php woodmart_enqueue_js_script( 'products-load-more' ); ?>
	<?php if ( 'infinit' === $pagination ) : ?>
		<?php woodmart_enqueue_js_library( 'waypoints' ); ?>
	<?php endif; ?>
	<div class="wd-loop-footer products-footer">
		<?php if ( 'more-btn' === $pagination || 'infinit' === $pagination ) : ?>
			<?php if ( get_next_posts_link() ) : ?>
				<?php woodmart_enqueue_inline_style( 'load-more-button' ); ?>
				<a href="<?php echo next_posts( $wp_query->max_num_pages, false ); // phpcs:ignore ?>" rel="nofollow noopener" class="btn wd-load-more wd-products-load-more load-on-<?php echo 'more-btn' === $pagination ? 'click' : 'scroll'; ?>"><span class="load-more-label"><?php esc_html_e( 'Load more products', 'woodmart' ); ?></span></a>
				<div class="btn wd-load-more wd-load-more-loader"><span class="load-more-loading"><?php esc_html_e( 'Loading...', 'woodmart' ); ?></span></div>
			<?php endif; ?>
		<?php else : ?>
			<nav class="woocommerce-pagination wd-pagination" aria-label="<?php esc_attr_e( 'Product Pagination', 'woocommerce' ); ?>">
				<?php
					echo paginate_links( // phpcs:ignore
						apply_filters(
							'woocommerce_pagination_args',
							array(
								'base'      => $base,
								'format'    => $format,
								'add_args'  => false,
								'current'   => max( 1, $current ),
								'total'     => $total,
								'prev_text' => '&larr;',
								'next_text' => '&rarr;',
								'type'      => 'list',
								'end_size'  => 3,
								'mid_size'  => 3,
							)
						)
					);
				?>
			</nav>
		<?php endif ?>
	</div>
<?php endif; ?>
