| 1 |
<?php |
| 2 |
|
| 3 |
if ( ! defined('ABSPATH') ) { |
| 4 |
exit; |
| 5 |
} |
| 6 |
|
| 7 |
$set_id = $post->ID; |
| 8 |
$filters = flrt_get_configured_filters( $set_id ); |
| 9 |
|
| 10 |
$filterSet = \FilterEverything\Filter\Container::instance()->getFilterSetService(); |
| 11 |
$the_set = $filterSet->getSet( $set_id ); |
| 12 |
$under_limit_filter_set = $filterSet->under_limit_filter_set($set_id); |
| 13 |
|
| 14 |
$order = 1; |
| 15 |
|
| 16 |
$search_field_order = ( isset( $the_set['search_field_menu_order']['value'] ) && $the_set['search_field_menu_order']['value'] > -1 ) ? (int)$the_set['search_field_menu_order']['value'] : (count($filters) + 1); |
| 17 |
// To avoid equal order for both elements |
| 18 |
if ( isset( $the_set['apply_button_menu_order']['value'] ) && $the_set['apply_button_menu_order']['value'] > -1 ){ |
| 19 |
$apply_button_order = (int)$the_set['apply_button_menu_order']['value']; |
| 20 |
} else { |
| 21 |
$apply_button_order = ($search_field_order + 1); |
| 22 |
} |
| 23 |
if ( $apply_button_order === $search_field_order ) { |
| 24 |
$apply_button_order++; |
| 25 |
} |
| 26 |
|
| 27 |
$apply_btn_displayed = false; |
| 28 |
$search_fld_displayed = false; |
| 29 |
if ( isset( $the_set['use_search_field']['value'] ) && $the_set['use_search_field']['value'] === 'yes' ) { |
| 30 |
$search_fld_displayed = true; |
| 31 |
} |
| 32 |
|
| 33 |
?> |
| 34 |
<div class="wpc-filter-set-wrapper"> |
| 35 |
<div class="wpc-filter-set-hidden-fields"> |
| 36 |
<input type="hidden" id="wpc_set_nonce" name="_flrt_nonce" value="<?php echo esc_attr( flrt_create_filters_nonce() ); ?>" /> |
| 37 |
</div> |
| 38 |
<div class="wpc-column-labels-wrapper"> |
| 39 |
<table class="wpc-form-fields-table"> |
| 40 |
<?php |
| 41 |
|
| 42 |
$attributes['post_type'] = $the_set['post_type']; |
| 43 |
$post_type = ( isset( $the_set['post_type']['value'] ) && $the_set['post_type']['value'] ) ? $the_set['post_type']['value'] : $the_set['post_type']['default']; |
| 44 |
|
| 45 |
flrt_include_admin_view('filter-field', array( |
| 46 |
'field_key' => key($attributes), |
| 47 |
'attributes' => reset($attributes) |
| 48 |
) |
| 49 |
); |
| 50 |
|
| 51 |
?> |
| 52 |
</table> |
| 53 |
</div> |
| 54 |
<div class="wpc-column-labels-wrapper"> |
| 55 |
<div class="wpc-column-labels widget-title"> |
| 56 |
<ul class="wpc-custom-row"> |
| 57 |
<li class="wpc-filter-order"> </li> |
| 58 |
<li class="wpc-filter-label"><?php esc_html_e('Title', 'filter-everything' ); ?></li> |
| 59 |
<li class="wpc-filter-entity"><?php esc_html_e('Filter by', 'filter-everything' ); ?></li> |
| 60 |
<li class="wpc-filter-view"><?php esc_html_e('View', 'filter-everything' ); ?></li> |
| 61 |
<li class="wpc-filter-slug"><?php esc_html_e('URL Prefix', 'filter-everything' ); ?></li> |
| 62 |
</ul> |
| 63 |
</div> |
| 64 |
</div> |
| 65 |
<div class="wpc-no-filters"<?php if( ! $filters && ! $search_fld_displayed ){ echo ' style="display: block;"'; }?>> |
| 66 |
<?php |
| 67 |
echo wp_kses( |
| 68 |
__('There are no filters yet. Click the <strong>Add Filter</strong> button to create your first one.', 'filter-everything' ), |
| 69 |
array( 'strong' => array() ) |
| 70 |
); |
| 71 |
?> |
| 72 |
</div> |
| 73 |
<div id="wpc-filters-list" class="wpc-filters-list" data-posttype="<?php echo $post_type; ?>"> |
| 74 |
|
| 75 |
<?php |
| 76 |
$filters_and_fields = []; |
| 77 |
$filters = array_reverse( $filters, true ); |
| 78 |
$to = count( $filters ) + 2; |
| 79 |
|
| 80 |
for ( $i = 1; $i <= $to; $i++ ) { |
| 81 |
if ( $apply_button_order === $i ) { |
| 82 |
$filters_and_fields[-1] = array(); |
| 83 |
} else if ( $search_field_order === $i ) { |
| 84 |
$filters_and_fields[-2] = array(); |
| 85 |
} else { |
| 86 |
// To avoid "empty" filter |
| 87 |
if ( ! empty( $filters ) ) { |
| 88 |
$key = array_key_last( $filters ); |
| 89 |
$value = array_pop( $filters ); |
| 90 |
$filters_and_fields[$key] = $value; |
| 91 |
} |
| 92 |
} |
| 93 |
} |
| 94 |
|
| 95 |
if( $filters_and_fields ): |
| 96 |
|
| 97 |
foreach( $filters_and_fields as $filter_id => $filter ): |
| 98 |
|
| 99 |
if ( $filter_id >= 0 ) { |
| 100 |
flrt_include_admin_view( 'filter-row', array( 'filter' => $filter ) ); |
| 101 |
} else { |
| 102 |
if ( $search_field_order == $order ) { |
| 103 |
flrt_include_admin_view( 'filter-search-field', array( |
| 104 |
'search_field_order' => $the_set['search_field_menu_order'], |
| 105 |
'use_search_field' => $the_set['use_search_field'], |
| 106 |
'search_field_placeholder' => $the_set['search_field_placeholder'], |
| 107 |
'search_field_label' => $the_set['search_field_label'], |
| 108 |
'post_type_args' => $the_set['post_type'], |
| 109 |
) |
| 110 |
); |
| 111 |
} |
| 112 |
|
| 113 |
if ( $apply_button_order == $order ) { |
| 114 |
flrt_include_admin_view( 'filter-apply-button', array( |
| 115 |
'apply_button' => $the_set['apply_button_menu_order'], |
| 116 |
'use_apply_button' => $the_set['use_apply_button'], |
| 117 |
'apply_button_text' => $the_set['apply_button_text'], |
| 118 |
'reset_button_text' => $the_set['reset_button_text'], |
| 119 |
'apply_button_order' => $apply_button_order |
| 120 |
) |
| 121 |
); |
| 122 |
} |
| 123 |
} |
| 124 |
|
| 125 |
$order++; |
| 126 |
endforeach; |
| 127 |
|
| 128 |
endif; ?> |
| 129 |
</div> |
| 130 |
|
| 131 |
<div class="wpc-add-filter-wrapper"> |
| 132 |
<?php $button_text = esc_html__('Add Filter','filter-everything' );?> |
| 133 |
<div class="wpc-add-filter-div<?php echo ($under_limit_filter_set) ? ' wpc_under_limit_filter_set' : ''; ?>"> |
| 134 |
<a href="javascript:void(0);" class="button button-primary button-large wpc-add-filter"><?php echo $button_text; ?></a> |
| 135 |
<?php |
| 136 |
if(!defined('FLRT_FILTERS_PRO')){ |
| 137 |
echo flrt_unlock_in_pro($button_text); |
| 138 |
} |
| 139 |
?> |
| 140 |
</div> |
| 141 |
</div> |
| 142 |
|
| 143 |
<script type="text/html" id="wpc-new-filter"> |
| 144 |
<?php |
| 145 |
flrt_include_admin_view( 'filter-row', array( 'filter' => flrt_get_empty_filter( $set_id ) ) ); |
| 146 |
?> |
| 147 |
</script> |
| 148 |
<div id="wpc-filter-set-pro-dialog" style="display:none;"> |
| 149 |
<?php |
| 150 |
$dialog_post_type_field = $filterSet->getPostTypeField($set_id); |
| 151 |
$dialog_post_type = !empty($dialog_post_type_field['post_type']['value']) ? $dialog_post_type_field['post_type']['value'] : ''; |
| 152 |
$dialog_limit = $filterSet->getFreeLimitForPostType($dialog_post_type); |
| 153 |
?> |
| 154 |
<p><?php echo wp_kses( |
| 155 |
sprintf( |
| 156 |
/* translators: 1: maximum number of free filter sets per post type, 2: PRO upgrade URL */ |
| 157 |
__('The free version allows up to %1$d filter sets per post type. Upgrade to <a href=\'%2$s\' target=\'_blank\'>PRO</a> for unlimited filter sets.', 'filter-everything' ), |
| 158 |
$dialog_limit, |
| 159 |
esc_url(FLRT_PLUGIN_URL .'/pricing/?utm_source=free_plugin&utm_medium=internal&utm_campaign=free_plugin_upgrade&utm_content=msg_three_set') ), |
| 160 |
array( |
| 161 |
'a' => array( |
| 162 |
'href'=> true, |
| 163 |
'target' => true |
| 164 |
) |
| 165 |
) |
| 166 |
) ?></p> |
| 167 |
</div> |
| 168 |
</div> |