Ivory Search – WordPress Search Plugin - Version 4.1.6

Version Description

  • Fixed - Post type issue when reset search form.
  • Styled - Twenty Nineteen theme search form.
  • Fixed - New search form tabs issue.
Download this release

Release Info

Developer vinod dalvi
Plugin Icon 128x128 Ivory Search – WordPress Search Plugin
Version 4.1.6
Comparing to
See all releases

Code changes from version 4.1.5 to 4.1.6

add-search-to-menu.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Ivory Search
4
  * Plugin URI: https://ivorysearch.com
5
  * Description: The WordPress Search plugin to power your WordPress site custom search. Helping you build a better search. Includes WooCommerce Search support!
6
- * Version: 4.1.5
7
  * Author: Ivory Search
8
  * Author URI: https://ivorysearch.com/
9
  * License: GPL2+
@@ -103,7 +103,7 @@ final class Ivory_Search {
103
  * Defines Ivory Search Constants.
104
  */
105
  private function define_constants() {
106
- define( 'IS_VERSION', '4.1.4' );
107
  define( 'IS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
108
  define( 'IS_PLUGIN_FILE', __FILE__ );
109
 
3
  * Plugin Name: Ivory Search
4
  * Plugin URI: https://ivorysearch.com
5
  * Description: The WordPress Search plugin to power your WordPress site custom search. Helping you build a better search. Includes WooCommerce Search support!
6
+ * Version: 4.1.6
7
  * Author: Ivory Search
8
  * Author URI: https://ivorysearch.com/
9
  * License: GPL2+
103
  * Defines Ivory Search Constants.
104
  */
105
  private function define_constants() {
106
+ define( 'IS_VERSION', '4.1.6' );
107
  define( 'IS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
108
  define( 'IS_PLUGIN_FILE', __FILE__ );
109
 
admin/class-is-admin.php CHANGED
@@ -266,7 +266,6 @@ class IS_Admin
266
  ),
267
  'search_title' => 1,
268
  'search_content' => 1,
269
- 'search_excerpt' => 1,
270
  );
271
  $args['_is_excludes'] = '';
272
  $args['_is_settings'] = '';
@@ -739,10 +738,12 @@ class IS_Admin
739
  return $defaults;
740
  }
741
  $defaults = wp_parse_args( $defaults, array(
742
- 'post_type' => array(
743
  'post' => 'post',
744
  'page' => 'page',
745
  ),
 
 
746
  ) );
747
  $input = wp_parse_args( $input, $defaults );
748
  $output = $this->sanitize_fields( $input );
266
  ),
267
  'search_title' => 1,
268
  'search_content' => 1,
 
269
  );
270
  $args['_is_excludes'] = '';
271
  $args['_is_settings'] = '';
738
  return $defaults;
739
  }
740
  $defaults = wp_parse_args( $defaults, array(
741
+ 'post_type' => array(
742
  'post' => 'post',
743
  'page' => 'page',
744
  ),
745
+ 'search_title' => 1,
746
+ 'search_content' => 1,
747
  ) );
748
  $input = wp_parse_args( $input, $defaults );
749
  $output = $this->sanitize_fields( $input );
admin/class-is-editor.php CHANGED
@@ -32,7 +32,7 @@ class IS_Search_Editor
32
  }
33
  echo '<ul id="search-form-editor-tabs">' ;
34
  $url = esc_url( menu_page_url( 'ivory-search-new', false ) );
35
- if ( isset( $_GET['post'] ) ) {
36
  $url = esc_url( menu_page_url( 'ivory-search', false ) ) . '&post=' . $_GET['post'] . '&action=edit';
37
  }
38
  $tab = ( isset( $_GET['tab'] ) ? $_GET['tab'] : 'includes' );
@@ -727,7 +727,7 @@ class IS_Search_Editor
727
  ?></a></span></h3>
728
  <div>
729
  <?php
730
- $content = __( 'Configure searching to search based on posts that have a specific MIME type or files that have specific media attachments', 'ivory-search' );
731
  IS_Help::help_info( $content );
732
  echo '<div>' ;
733
 
32
  }
33
  echo '<ul id="search-form-editor-tabs">' ;
34
  $url = esc_url( menu_page_url( 'ivory-search-new', false ) );
35
+ if ( isset( $_GET['post'] ) && is_numeric( $_GET['post'] ) ) {
36
  $url = esc_url( menu_page_url( 'ivory-search', false ) ) . '&post=' . $_GET['post'] . '&action=edit';
37
  }
38
  $tab = ( isset( $_GET['tab'] ) ? $_GET['tab'] : 'includes' );
727
  ?></a></span></h3>
728
  <div>
729
  <?php
730
+ $content = __( 'Configure the option to search files, media, attachments, images, documents or post types of specific MIME type.', 'ivory-search' );
731
  IS_Help::help_info( $content );
732
  echo '<div>' ;
733
 
admin/class-is-settings-fields.php CHANGED
@@ -396,7 +396,7 @@ class IS_Settings_Fields
396
  */
397
  function menu_title()
398
  {
399
- $content = __( 'Displays set menu title text in place of search icon displays in navigation menu.', 'ivory-search' );
400
  IS_Help::help_info( $content );
401
  $this->opt['add_search_to_menu_title'] = ( isset( $this->opt['add_search_to_menu_title'] ) ? $this->opt['add_search_to_menu_title'] : '' );
402
  $this->opt['menu_title'] = ( isset( $this->opt['menu_title'] ) ? $this->opt['menu_title'] : $this->opt['add_search_to_menu_title'] );
396
  */
397
  function menu_title()
398
  {
399
+ $content = __( 'Displays the set menu title text in place of search icon in the navigation menu.', 'ivory-search' );
400
  IS_Help::help_info( $content );
401
  $this->opt['add_search_to_menu_title'] = ( isset( $this->opt['add_search_to_menu_title'] ) ? $this->opt['add_search_to_menu_title'] : '' );
402
  $this->opt['menu_title'] = ( isset( $this->opt['menu_title'] ) ? $this->opt['menu_title'] : $this->opt['add_search_to_menu_title'] );
admin/class-is-template.php CHANGED
@@ -29,7 +29,6 @@ class IS_Template {
29
  ),
30
  'search_title' => 1,
31
  'search_content' => 1,
32
- 'search_excerpt' => 1,
33
  );
34
 
35
  return $template;
29
  ),
30
  'search_title' => 1,
31
  'search_content' => 1,
 
32
  );
33
 
34
  return $template;
includes/freemius.php CHANGED
@@ -29,6 +29,7 @@ function is_fs()
29
  'menu' => array(
30
  'slug' => 'ivory-search',
31
  'support' => false,
 
32
  ),
33
  'is_live' => true,
34
  ) );
@@ -72,4 +73,4 @@ $is_fs->add_filter(
72
  'is_fs_connect_message_update',
73
  10,
74
  6
75
- );
29
  'menu' => array(
30
  'slug' => 'ivory-search',
31
  'support' => false,
32
+ 'affiliation' => false,
33
  ),
34
  'is_live' => true,
35
  ) );
73
  'is_fs_connect_message_update',
74
  10,
75
  6
76
+ );
includes/freemius/README.md DELETED
@@ -1,253 +0,0 @@
1
- Freemius WordPress SDK
2
- ======================
3
-
4
- [Monetization](https://freemius.com/wordpress/), [analytics](https://freemius.com/wordpress/insights/), and marketing automation platform for plugin & theme developers. Freemius empower developers to create prosperous subscription based businesses.
5
-
6
- You can see some of the WordPress.org plugins & themes that are utilizing the power of Freemius here:
7
-
8
- https://includewp.com/freemius/#focus
9
-
10
- If you are a WordPress plugin or theme developer and you are interested to monetize with Freemius you can [sign-up here for free](https://dashboard.freemius.com/register/):
11
-
12
- https://dashboard.freemius.com/register/
13
-
14
- **Below you'll find the integration instructions for our WordPress SDK.**
15
-
16
- ## Code Documentation
17
-
18
- You can find the SDK's PHP-Doc documentation here:
19
- https://codedoc.pub/freemius/wordpress-sdk/master/
20
-
21
- ## Initializing the SDK
22
-
23
- Copy the code below and paste it into the top of your main plugin's PHP file, right after the plugin's header comment:
24
-
25
- ```php
26
- <?php
27
- // Create a helper function for easy SDK access.
28
- function my_prefix_fs() {
29
- global $my_prefix_fs;
30
- if ( ! isset( $my_prefix_fs ) ) {
31
- // Include Freemius SDK.
32
- require_once dirname(__FILE__) . '/freemius/start.php';
33
-
34
- $my_prefix_fs = fs_dynamic_init( array(
35
- 'id' => '1234',
36
- 'slug' => 'my-plugin-slug',
37
- 'menu_slug' => 'my_menu_slug', // You can also use __FILE__
38
- 'public_key' => 'pk_MY_PUBLIC_KEY',
39
- 'is_live' => true,
40
- 'is_premium' => true,
41
- 'has_addons' => false,
42
- 'has_paid_plans' => false,
43
- // Set the SDK to work in a sandbox mode (for development & testing).
44
- // IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
45
- 'secret_key' => 'sk_MY_SECRET_KEY',
46
- ) );
47
- }
48
-
49
- return $my_prefix_fs;
50
- }
51
-
52
- // Init Freemius.
53
- my_prefix_fs();
54
- ?>
55
- ```
56
-
57
- - **1234** - Replace with your plugin's ID.
58
- - **pk_MY_PUBLIC_KEY** - Replace with your plugin's public key.
59
- - **sk_MY_SECRET_KEY** - Replace with your plugin's secret key.
60
- - **my-plugin-slug** - Replace with your plugin's WordPress.org slug.
61
- - **my_menu_slug** - Replace with your admin dashboard settings menu slug.
62
-
63
-
64
- ## Usage example
65
-
66
- You can call the SDK by using the shortcode function:
67
-
68
- ```php
69
- <?php my_prefix_fs()->get_upgrade_url(); ?>
70
- ```
71
-
72
- Or when calling Freemius multiple times in a scope, it's recommended to use it with the global variable:
73
-
74
- ```php
75
- <?php
76
- global $my_prefix_fs;
77
- $my_prefix_fs->get_account_url();
78
- ?>
79
- ```
80
-
81
- ## Adding license based logic examples
82
-
83
- Add marketing content to encourage your users to upgrade for your paid version:
84
-
85
- ```php
86
- <?php
87
- if ( my_prefix_fs()->is_not_paying() ) {
88
- echo '<section><h1>' . esc_html__('Awesome Premium Features', 'my-plugin-slug') . '</h1>';
89
- echo '<a href="' . my_prefix_fs()->get_upgrade_url() . '">' .
90
- esc_html__('Upgrade Now!', 'my-plugin-slug') .
91
- '</a>';
92
- echo '</section>';
93
- }
94
- ?>
95
- ```
96
-
97
- Add logic which will only be available in your premium plugin version:
98
-
99
- ```php
100
- <?php
101
- // This "if" block will be auto removed from the Free version.
102
- if ( my_prefix_fs()->is__premium_only() ) {
103
-
104
- // ... premium only logic ...
105
-
106
- }
107
- ?>
108
- ```
109
-
110
- To add a function which will only be available in your premium plugin version, simply add __premium_only as the suffix of the function name. Just make sure that all lines that call that method directly or by hooks, are also wrapped in premium only logic:
111
-
112
- ```php
113
- <?php
114
- class My_Plugin {
115
- function init() {
116
- ...
117
-
118
- // This "if" block will be auto removed from the free version.
119
- if ( my_prefix_fs()->is__premium_only() ) {
120
- // Init premium version.
121
- $this->admin_init__premium_only();
122
-
123
- add_action( 'admin_init', array( &$this, 'admin_init_hook__premium_only' );
124
- }
125
-
126
- ...
127
- }
128
-
129
- // This method will be only included in the premium version.
130
- function admin_init__premium_only() {
131
- ...
132
- }
133
-
134
- // This method will be only included in the premium version.
135
- function admin_init_hook__premium_only() {
136
- ...
137
- }
138
- }
139
- ?>
140
- ```
141
-
142
- Add logic which will only be executed for customers in your 'professional' plan:
143
-
144
- ```php
145
- <?php
146
- if ( my_prefix_fs()->is_plan('professional', true) ) {
147
- // .. logic related to Professional plan only ...
148
- }
149
- ?>
150
- ```
151
-
152
- Add logic which will only be executed for customers in your 'professional' plan or higher plans:
153
-
154
- ```php
155
- <?php
156
- if ( my_prefix_fs()->is_plan('professional') ) {
157
- // ... logic related to Professional plan and higher plans ...
158
- }
159
- ?>
160
- ```
161
-
162
- Add logic which will only be available in your premium plugin version AND will only be executed for customers in your 'professional' plan (and higher plans):
163
-
164
- ```php
165
- <?php
166
- // This "if" block will be auto removed from the Free version.
167
- if ( my_prefix_fs()->is_plan__premium_only('professional') ) {
168
- // ... logic related to Professional plan and higher plans ...
169
- }
170
- ?>
171
- ```
172
-
173
- Add logic only for users in trial:
174
-
175
- ```php
176
- <?php
177
- if ( my_prefix_fs()->is_trial() ) {
178
- // ... logic for users in trial ...
179
- }
180
- ?>
181
- ```
182
-
183
- Add logic for specified paid plan:
184
-
185
- ```php
186
- <?php
187
- // This "if" block will be auto removed from the Free version.
188
- if ( my_prefix_fs()->is__premium_only() ) {
189
- if ( my_prefix_fs()->is_plan( 'professional', true ) ) {
190
-
191
- // ... logic related to Professional plan only ...
192
-
193
- } else if ( my_prefix_fs()->is_plan( 'business' ) ) {
194
-
195
- // ... logic related to Business plan and higher plans ...
196
-
197
- }
198
- }
199
- ?>
200
- ```
201
-
202
- ## Excluding files and folders from the free plugin version
203
- There are two ways to exclude files from your free version.
204
-
205
- 1. Add `__premium_only` just before the file extension. For example, functions__premium_only.php will be only included in the premium plugin version. This works for all type of files, not only PHP.
206
- 2. Add `@fs_premium_only` a sepcial meta tag to the plugin's main PHP file header. Example:
207
- ```php
208
- <?php
209
- /**
210
- * Plugin Name: My Very Awesome Plugin
211
- * Plugin URI: http://my-awesome-plugin.com
212
- * Description: Create and manage Awesomeness right in WordPress.
213
- * Version: 1.0.0
214
- * Author: Awesomattic
215
- * Author URI: http://my-awesome-plugin.com/me/
216
- * License: GPLv2
217
- * Text Domain: myplugin
218
- * Domain Path: /langs
219
- *
220
- * @fs_premium_only /lib/functions.php, /premium-files/
221
- */
222
-
223
- if ( ! defined( 'ABSPATH' ) ) {
224
- exit;
225
- }
226
-
227
- // ... my code ...
228
- ?>
229
- ```
230
- The file `/lib/functions.php` and the directory `/premium-files/` will be removed from the free plugin version.
231
-
232
- # WordPress.org Compliance
233
- Based on [WordPress.org Guidelines](https://wordpress.org/plugins/about/guidelines/) you are not allowed to submit a plugin that has premium code in it:
234
- > All code hosted by WordPress.org servers must be free and fully-functional. If you want to sell advanced features for a plugin (such as a "pro" version), then you must sell and serve that code from your own site, we will not host it on our servers.
235
-
236
- Therefore, if you want to deploy your free plugin's version to WordPress.org, make sure you wrap all your premium code with `if ( my_prefix_fs()->{{ method }}__premium_only() )` or the other methods provided to exclude premium features & files from the free version.
237
-
238
- ## Deployment
239
- Zip your plugin's root folder and upload it in the Deployment section in the *Freemius Developer's Dashboard*.
240
- The plugin will be scanned and processed by a custom developed *PHP Processor* which will auto-generate two versions of your plugin:
241
-
242
- 1. **Premium version**: Identical to your uploaded version, including all code (except your `secret_key`). Will be enabled for download ONLY for your paying or in trial customers.
243
- 2. **Free version**: The code stripped from all your paid features (based on the logic added wrapped in `{ method }__premium_only()`).
244
-
245
- The free version is the one that you should give your users to download. Therefore, download the free generated version and upload to your site. Or, if your plugin was WordPress.org complaint and you made sure to exclude all your premium code with the different provided techniques, you can deploy the downloaded free version to the .org repo.
246
-
247
- ## Reporting Bugs
248
- Email dev [at] freemius [dot] com
249
-
250
- ## FAQ
251
-
252
- ## Copyright
253
- Freemius, Inc.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/css/ivory-search.css CHANGED
@@ -19,13 +19,13 @@
19
  }
20
 
21
  .is-menu.default form {
22
- max-width: 300px;
23
  position: static;
24
  }
25
 
26
  .is-menu.dropdown form {
27
  display: none;
28
- min-width: 300px;
29
  max-width: 100%;
30
  position: absolute;
31
  right: 0;
@@ -45,6 +45,10 @@
45
 
46
  }
47
 
 
 
 
 
48
  .is-menu.full-width-menu.active-search {
49
  top: 0;
50
  position: absolute;
@@ -88,7 +92,7 @@
88
  }
89
 
90
  .gsc-cse-search-menu {
91
- max-width: 300px;
92
  float: right
93
  }
94
 
19
  }
20
 
21
  .is-menu.default form {
22
+ max-width: 310px;
23
  position: static;
24
  }
25
 
26
  .is-menu.dropdown form {
27
  display: none;
28
+ min-width: 310px;
29
  max-width: 100%;
30
  position: absolute;
31
  right: 0;
45
 
46
  }
47
 
48
+ .is-menu.full-width-menu input.search-field {
49
+ width: 75%;
50
+ }
51
+
52
  .is-menu.full-width-menu.active-search {
53
  top: 0;
54
  position: absolute;
92
  }
93
 
94
  .gsc-cse-search-menu {
95
+ max-width: 310px;
96
  float: right
97
  }
98
 
public/js/ivory-search.js CHANGED
@@ -15,7 +15,7 @@
15
  if ( $( this ).parent().hasClass( 'dropdown' ) ) {
16
  $( this ).parent().find( 'form' ).fadeToggle();
17
  } else if ( $( this ).parent().hasClass( 'sliding' ) ) {
18
- $( this ).parent().find( 'form' ).animate( { width: '300' } );
19
  $( this ).parent().find( 'form input[type="search"], form input[type="text"]' ).focus();
20
  $( this ).parent().addClass( 'open' );
21
  } else if ( $( this ).parent().hasClass( 'full-width-menu' ) ) {
15
  if ( $( this ).parent().hasClass( 'dropdown' ) ) {
16
  $( this ).parent().find( 'form' ).fadeToggle();
17
  } else if ( $( this ).parent().hasClass( 'sliding' ) ) {
18
+ $( this ).parent().find( 'form' ).animate( { width: '310' } );
19
  $( this ).parent().find( 'form input[type="search"], form input[type="text"]' ).focus();
20
  $( this ).parent().addClass( 'open' );
21
  } else if ( $( this ).parent().hasClass( 'full-width-menu' ) ) {
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === Ivory Search - WordPress Search Plugin ===
2
  Contributors: ivorysearch, vinod dalvi
3
  Donate link: https://ivorysearch.com/pricing/
4
- Tags: search, search menu, woocommerce search, search plugin, search shortcode, search widget, exclude from search, custom search, search by post type, search by category, relevant search, search forms
5
  Requires at least: 3.9
6
  Tested up to: 5.0
7
  Requires PHP: 5.2.4
8
- Stable tag: 4.1.5
9
  License: GPLv2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -135,7 +135,7 @@ Any suggestions or comments are welcome. Feel free to contact us using this [Con
135
 
136
  Please read below documentation to know how to use Ivory Search plugin.
137
 
138
- [https://ivorysearch.com/knowledge-base/how-to-use-ivory-search-plugin/](https://ivorysearch.com/knowledge-base/how-to-use-ivory-search-plugin/)
139
 
140
  = Is the plugin compatible with WooCommerce? =
141
 
@@ -178,6 +178,11 @@ Yes we do. We try our best to help free users with customisation requests and we
178
 
179
  == Changelog ==
180
 
 
 
 
 
 
181
  = 4.1.5 =
182
  * Fixed - Firefox browser right mouse click closing search form issue.
183
 
1
  === Ivory Search - WordPress Search Plugin ===
2
  Contributors: ivorysearch, vinod dalvi
3
  Donate link: https://ivorysearch.com/pricing/
4
+ Tags: search, woocommerce search, image search, search shortcode, exclude from search, search widget, search menu, search plugin, custom search, search by post type, search by category, relevant search, search forms
5
  Requires at least: 3.9
6
  Tested up to: 5.0
7
  Requires PHP: 5.2.4
8
+ Stable tag: 4.1.6
9
  License: GPLv2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
135
 
136
  Please read below documentation to know how to use Ivory Search plugin.
137
 
138
+ [https://ivorysearch.com/docs/how-to-use-ivory-search-plugin/](https://ivorysearch.com/docs/how-to-use-ivory-search-plugin/)
139
 
140
  = Is the plugin compatible with WooCommerce? =
141
 
178
 
179
  == Changelog ==
180
 
181
+ = 4.1.6 =
182
+ * Fixed - Post type issue when reset search form.
183
+ * Styled - Twenty Nineteen theme search form.
184
+ * Fixed - New search form tabs issue.
185
+
186
  = 4.1.5 =
187
  * Fixed - Firefox browser right mouse click closing search form issue.
188