filters.php
3 months ago
info-bottom.php
3 months ago
info-top.php
1 year ago
submitbox-meta.php
10 months ago
filters.php
122 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Render ad list filters. |
| 4 | * |
| 5 | * @package AdvancedAds |
| 6 | */ |
| 7 | |
| 8 | use AdvancedAds\Framework\Utilities\Params; |
| 9 | use AdvancedAds\Options; |
| 10 | |
| 11 | // TODO: refactor whole filter system. |
| 12 | |
| 13 | global $wp_query; |
| 14 | |
| 15 | $screen = get_current_screen(); |
| 16 | $filters_to_show = $screen->get_option( 'filters_to_show' ) ?? []; |
| 17 | $is_privacy_enabled = Options::instance()->get( 'privacy.enabled' ); |
| 18 | |
| 19 | $all_filters = wp_advads()->list_filters->get_all_filters(); |
| 20 | |
| 21 | $selected_ad_type = Params::request( 'adtype', '' ); |
| 22 | $ad_size = Params::request( 'adsize', '' ); |
| 23 | $ad_date = Params::request( 'addate', '' ); |
| 24 | $ad_group = Params::request( 'adgroup', '' ); |
| 25 | $ad_author = Params::request( 'ad_author', '' ); |
| 26 | $ad_debug = Params::request( 'ad_debugmode', '' ); |
| 27 | $ad_displayonce = Params::request( 'ad_displayonce', '' ); |
| 28 | $ad_privacyignore = Params::request( 'ad_privacyignore', '' ); |
| 29 | |
| 30 | // hide the filter button. Can not filter correctly with "trashed" posts. |
| 31 | if ( 'trash' === Params::request( 'post_status', '' ) ) { |
| 32 | echo '<style type="text/css">#post-query-submit{display:none;}</style>'; |
| 33 | } |
| 34 | |
| 35 | $ad_types = wp_advads_get_ad_types(); |
| 36 | usort( |
| 37 | $ad_types, |
| 38 | function ( $a, $b ) { |
| 39 | return strcmp( $a->get_title(), $b->get_title() ); |
| 40 | } |
| 41 | ); |
| 42 | ?> |
| 43 | |
| 44 | <!-- Types --> |
| 45 | <select id="advads-filter-type" name="adtype"> |
| 46 | <option value="">- <?php esc_html_e( 'Ad Types', 'advanced-ads' ); ?> -</option> |
| 47 | <?php foreach ( $ad_types as $ad_type ) : ?> |
| 48 | <option <?php selected( $selected_ad_type, $ad_type->get_id() ); ?> value="<?php echo esc_attr( $ad_type->get_id() ); ?>"><?php echo esc_html( $ad_type->get_title() ); ?></option> |
| 49 | <?php endforeach; ?> |
| 50 | </select> |
| 51 | |
| 52 | <!-- Sizes --> |
| 53 | <?php if ( ! empty( $all_filters['all_sizes'] ) ) : ?> |
| 54 | <select id="advads-filter-size" name="adsize"> |
| 55 | <option value="">- <?php esc_html_e( 'Ad Sizes', 'advanced-ads' ); ?> -</option> |
| 56 | <?php foreach ( $all_filters['all_sizes'] as $key => $value ) : ?> |
| 57 | <option <?php selected( $ad_size, $key ); ?> value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $value ); ?></option> |
| 58 | <?php endforeach; ?> |
| 59 | </select> |
| 60 | <?php endif; ?> |
| 61 | |
| 62 | <!-- Dates --> |
| 63 | <?php if ( ! empty( $all_filters['all_dates'] ) ) : ?> |
| 64 | <select id="advads-filter-date" name="addate"> |
| 65 | <option value="">- <?php esc_html_e( 'Ad Dates', 'advanced-ads' ); ?> -</option> |
| 66 | <?php foreach ( $all_filters['all_dates'] as $key => $value ) : ?> |
| 67 | <option <?php selected( $ad_date, $key ); ?> value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $value ); ?></option> |
| 68 | <?php endforeach; ?> |
| 69 | </select> |
| 70 | <?php endif; ?> |
| 71 | |
| 72 | <!-- Groups --> |
| 73 | <?php if ( ! empty( $all_filters['all_groups'] ) ) : ?> |
| 74 | <select id="advads-filter-group" name="adgroup"> |
| 75 | <option value="">- <?php esc_html_e( 'Ad Groups', 'advanced-ads' ); ?> -</option> |
| 76 | <?php foreach ( $all_filters['all_groups'] as $key => $value ) : ?> |
| 77 | <option <?php selected( $ad_group, $key ); ?> value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $value ); ?></option> |
| 78 | <?php endforeach; ?> |
| 79 | </select> |
| 80 | <?php endif; ?> |
| 81 | |
| 82 | <!-- Debug Mode --> |
| 83 | <?php if ( in_array( 'all_debug_mode', $filters_to_show, true ) ) : ?> |
| 84 | <select name="ad_debugmode"> |
| 85 | <option value="">- <?php esc_html_e( 'Debug Mode', 'advanced-ads' ); ?> -</option> |
| 86 | <option <?php selected( $ad_debug, 'yes' ); ?> value="yes"><?php esc_html_e( 'Enabled', 'advanced-ads' ); ?></option> |
| 87 | <option <?php selected( $ad_debug, 'no' ); ?> value="no"><?php esc_html_e( 'Disabled', 'advanced-ads' ); ?></option> |
| 88 | </select> |
| 89 | <?php endif; ?> |
| 90 | |
| 91 | <!-- Author --> |
| 92 | <?php if ( in_array( 'all_authors', $filters_to_show, true ) && ! empty( $all_filters['all_authors'] ) ) : ?> |
| 93 | <select name="ad_author"> |
| 94 | <option value="">- <?php esc_html_e( 'Ad Authors', 'advanced-ads' ); ?> -</option> |
| 95 | <?php foreach ( $all_filters['all_authors'] as $key => $value ) : ?> |
| 96 | <option <?php selected( $ad_author, $key ); ?> value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $value ); ?></option> |
| 97 | <?php endforeach; ?> |
| 98 | </select> |
| 99 | <?php endif; ?> |
| 100 | |
| 101 | <!-- Display once --> |
| 102 | <?php if ( defined( 'AAP_VERSION' ) && in_array( 'all_displayonce', $filters_to_show, true ) ) : ?> |
| 103 | <select name="ad_displayonce"> |
| 104 | <option value="">- <?php esc_html_e( 'Display Once', 'advanced-ads' ); ?> -</option> |
| 105 | <option <?php selected( $ad_displayonce, 'yes' ); ?> value="yes"><?php esc_html_e( 'Enabled', 'advanced-ads' ); ?></option> |
| 106 | <option <?php selected( $ad_displayonce, 'no' ); ?> value="no"><?php esc_html_e( 'Disabled', 'advanced-ads' ); ?></option> |
| 107 | </select> |
| 108 | <?php endif; ?> |
| 109 | |
| 110 | <!-- Privacy ignore --> |
| 111 | <?php if ( $is_privacy_enabled && in_array( 'all_privacyignore', $filters_to_show, true ) ) : ?> |
| 112 | <select name="ad_privacyignore"> |
| 113 | <option value="">- <?php esc_html_e( 'Privacy Ignore', 'advanced-ads' ); ?> -</option> |
| 114 | <option <?php selected( $ad_privacyignore, 'yes' ); ?> value="yes"><?php esc_html_e( 'Enabled', 'advanced-ads' ); ?></option> |
| 115 | <option <?php selected( $ad_privacyignore, 'no' ); ?> value="no"><?php esc_html_e( 'Disabled', 'advanced-ads' ); ?></option> |
| 116 | </select> |
| 117 | <?php endif; ?> |
| 118 | |
| 119 | <?php if ( isset( $wp_query->found_posts ) && $wp_query->found_posts > 0 ) : ?> |
| 120 | <?php do_action( 'advanced-ads-ad-list-filter-markup', $all_filters ); ?> |
| 121 | <?php endif; ?> |
| 122 |