Created
October 27, 2022 23:40
-
-
Save Asikur22/552edd0c96ec52ac850c5823ee4cd20e to your computer and use it in GitHub Desktop.
Woocommerce shop product per page dropdown #ProductPerPage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Woocommerce shop product per page dropdown | |
*/ | |
add_action( 'woocommerce_before_shop_loop', 'gl_asiq_woo_per_page_dropdown', 31 ); | |
function gl_asiq_woo_per_page_dropdown() { | |
$per_page = filter_input( INPUT_GET, 'per_page', FILTER_SANITIZE_NUMBER_INT ); | |
$orderby = filter_input( INPUT_GET, 'orderby', FILTER_SANITIZE_STRING ); | |
$per_page_options = array( | |
'12' => '12', | |
'24' => '24', | |
'36' => '36', | |
'100' => '100' | |
); | |
?> | |
<form class="woocommerce-per-page" method="get"> | |
<select id="woo-per-page" name="per_page"> | |
<?php | |
foreach ( $per_page_options as $value => $label ) : ?> | |
<option <?php echo selected( $per_page, $value ); ?> value="<?php echo $value; ?>">Display: <?php echo $label; ?> per page</option> | |
<?php endforeach; ?> | |
</select> | |
<?php if ( ! empty( $orderby ) ) : ?> | |
<input type="hidden" name="orderby" value="<?php echo $orderby; ?>"> | |
<?php endif; ?> | |
<script> | |
window.addEventListener( 'load', ( event ) => { | |
document.querySelector( '#woo-per-page' ).addEventListener( 'change', function ( event ) { | |
this.closest( 'form' ).submit(); | |
} ); | |
} ); | |
</script> | |
</form> | |
<?php | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment