Page Visit Counter - Version 6.0.4

Version Description

  • 22-05-2020 =
  • Compatible with WooCommerce 4.1.x
  • Compatible with Wordpress 5.4.x
Download this release

Release Info

Developer dots
Plugin Icon 128x128 Page Visit Counter
Version 6.0.4
Comparing to
See all releases

Code changes from version 6.0.3 to 6.0.4

Files changed (26) hide show
  1. README.txt +9 -5
  2. admin/css/page-visit-counter-admin.css +37 -2
  3. admin/images/pvcp-icon.png +0 -0
  4. admin/images/rate-us.png +0 -0
  5. admin/images/thedotstore-images/Advanced-Product-Size-Charts-for-WooCommerce.png +0 -0
  6. admin/images/thedotstore-images/account.png +0 -0
  7. admin/images/thedotstore-images/check-mark-free.png +0 -0
  8. admin/images/thedotstore-images/check-mark.png +0 -0
  9. admin/images/thedotstore-images/menu-icon.png +0 -0
  10. admin/images/thedotstore-images/popular-plugins/Advance-Menu-Manager-For-WordPress.png +0 -0
  11. admin/images/thedotstore-images/popular-plugins/Advanced-Flat-Rate-Shipping-Method.png +0 -0
  12. admin/images/thedotstore-images/popular-plugins/Conditional-Product-Fees-For-WooCommerce-Checkout.png +0 -0
  13. admin/images/thedotstore-images/popular-plugins/Enhanced-Ecommerce-Google-Analytics-For-WooCommerce.png +0 -0
  14. admin/images/thedotstore-images/popular-plugins/WooCommerce-Blocker-Prevent-Fake-Orders.png +0 -0
  15. admin/images/thedotstore-images/screenshots/Custom-style.png +0 -0
  16. admin/images/thedotstore-images/screenshots/Getting_Started_01.png +0 -0
  17. admin/images/thedotstore-images/screenshots/Getting_Started_02.png +0 -0
  18. admin/images/thedotstore-images/screenshots/Getting_Started_03.png +0 -0
  19. admin/images/thedotstore-images/screenshots/Getting_Started_04.png +0 -0
  20. admin/images/thedotstore-images/support.png +0 -0
  21. admin/images/thedotstore-images/trash.png +0 -0
  22. admin/images/thedotstore-images/upgrade.png +0 -0
  23. admin/partials/header/plugin-sidebar.php +104 -22
  24. includes/class-page-visit-counter-user-feedback.php +337 -0
  25. includes/class-page-visit-counter.php +4 -0
  26. page-visit-counter.php +3 -3
README.txt CHANGED
@@ -1,14 +1,14 @@
1
  === Page Visit Counter ===
2
  Plugin Name: Page Visit Counter
3
  Plugin URI: https://www.thedotstore.com/
4
- Author: Thedotstore
5
  Author URI: https://www.thedotstore.com/
6
  Contributors: dots, ketuchetan, chiragpatel, jitendrabanjara1991, niravcse006
7
- Stable tag: 6.0.3
8
- WC tested up to: 3.9
9
  Tags: page counter,page visit, post counter, post visit, wordpress post view, wordpress page view, page visit graph, post visit graph,
10
  Requires at least: 3.0
11
- Tested up to: 5.2.2
12
  Donate link:
13
  Copyright: (c) 2014-2016 Multidots Solutions PVT LTD (info@multidots.com)
14
  License: GPLv3 or later
@@ -19,7 +19,7 @@ This plugin will count the total visits of your sites pages.
19
  == Description ==
20
  This Plugin used for front side post and pages counter. After activation of the plugin, You need to check checkbox from plugins setting. It will add page counter on the bottom of all pages. So, that all visitors can see page counts for entire site pages. The plugin provides search by page title and search by page published date facilities. Settings are required for page counter. The plugin provides to select specific post type to include in post /pages counter. The plugin also provides to exclude specific IP/s and specific register user to exude from post/pages counter.
21
 
22
- Plugin Demo : <a href ="http://pluginsdemo.thedotstore.com/page-visit-counter/" target="_blank">View Demo</a>
23
 
24
  = Page Counter Settings: =
25
  * In these options you can do different setting for page visit counter.
@@ -106,6 +106,10 @@ Automatic updates should work great for you. As always, though, we recommend ba
106
 
107
  == Changelog ==
108
 
 
 
 
 
109
  = 6.0.3 - 20-11-2019 =
110
  * Compatible with WooCommerce 3.9.x
111
 
1
  === Page Visit Counter ===
2
  Plugin Name: Page Visit Counter
3
  Plugin URI: https://www.thedotstore.com/
4
+ Author: theDotstore
5
  Author URI: https://www.thedotstore.com/
6
  Contributors: dots, ketuchetan, chiragpatel, jitendrabanjara1991, niravcse006
7
+ Stable tag: 6.0.4
8
+ WC tested up to: 4.0
9
  Tags: page counter,page visit, post counter, post visit, wordpress post view, wordpress page view, page visit graph, post visit graph,
10
  Requires at least: 3.0
11
+ Tested up to: 5.4.1
12
  Donate link:
13
  Copyright: (c) 2014-2016 Multidots Solutions PVT LTD (info@multidots.com)
14
  License: GPLv3 or later
19
  == Description ==
20
  This Plugin used for front side post and pages counter. After activation of the plugin, You need to check checkbox from plugins setting. It will add page counter on the bottom of all pages. So, that all visitors can see page counts for entire site pages. The plugin provides search by page title and search by page published date facilities. Settings are required for page counter. The plugin provides to select specific post type to include in post /pages counter. The plugin also provides to exclude specific IP/s and specific register user to exude from post/pages counter.
21
 
22
+ Plugin Demo : <a href ="http://pagevisitcounter.demo.store.multidots.com/" target="_blank">View Demo</a>
23
 
24
  = Page Counter Settings: =
25
  * In these options you can do different setting for page visit counter.
106
 
107
  == Changelog ==
108
 
109
+ = 6.0.4 - 22-05-2020 =
110
+ * Compatible with WooCommerce 4.1.x
111
+ * Compatible with Wordpress 5.4.x
112
+
113
  = 6.0.3 - 20-11-2019 =
114
  * Compatible with WooCommerce 3.9.x
115
 
admin/css/page-visit-counter-admin.css CHANGED
@@ -10,8 +10,8 @@
10
  #dotsstoremain header.dots-header{width:100%;display:inline-block;background:#d9d9d9;vertical-align:top;margin-bottom:20px}
11
  #dotsstoremain .dots-logo-main{float:left;width:auto;display:inline-block;padding:20px}
12
  #dotsstoremain .dots-logo-main img{width:75px}
13
- #dotsstoremain .dots-header-right{width:90%;display:inline-block;padding:24px 0;float:left;}
14
- #dotsstoremain .dots-header-right .logo-detail{display:inline-block;padding-left:20px;box-sizing:border-box;vertical-align:middle;margin:0;float: left;width: 60%;}
15
  #dotsstoremain .dots-header-right .logo-detail strong{display:block;font-size:23px;margin-bottom:10px;color:#000;line-height:32px}
16
  #dotsstoremain .dots-header-right .button-group {display: inline-block; float: right;}
17
  #dotsstoremain .button-group .button-dots-left { display: inline-block; float: left; margin-right: 30px;}
@@ -172,6 +172,41 @@ a.canvasjs-chart-credit {display: none; }
172
  .dash-summary table.form-table tbody tr:last-child td:first-child {font-weight: 500; }
173
  .pvcp-alert-success{color: #3c763d;background-color: #dff0d8;border-color: #d6e9c6;padding: 10px;margin-top: 8px;}
174
  .pvcp_blank_graph{display: flex;align-items: center;justify-content: center;padding: 230px 0;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  @media screen and (max-width: 767px){
176
  .pvcp-main-dashboard .pvcp-table-cover {width: 100%;margin-bottom: 20px;}
177
  #pvcp-postbox-container-2,#pvcp-postbox-container-1{width: 100% !important;}
10
  #dotsstoremain header.dots-header{width:100%;display:inline-block;background:#d9d9d9;vertical-align:top;margin-bottom:20px}
11
  #dotsstoremain .dots-logo-main{float:left;width:auto;display:inline-block;padding:20px}
12
  #dotsstoremain .dots-logo-main img{width:75px}
13
+ #dotsstoremain .dots-header-right{width:89%;display:inline-block;padding:24px 0;float:left;}
14
+ #dotsstoremain .dots-header-right .logo-detail{display:inline-block;padding-left:20px;box-sizing:border-box;vertical-align:middle;margin:0;float: left;width: 58%;}
15
  #dotsstoremain .dots-header-right .logo-detail strong{display:block;font-size:23px;margin-bottom:10px;color:#000;line-height:32px}
16
  #dotsstoremain .dots-header-right .button-group {display: inline-block; float: right;}
17
  #dotsstoremain .button-group .button-dots-left { display: inline-block; float: left; margin-right: 30px;}
172
  .dash-summary table.form-table tbody tr:last-child td:first-child {font-weight: 500; }
173
  .pvcp-alert-success{color: #3c763d;background-color: #dff0d8;border-color: #d6e9c6;padding: 10px;margin-top: 8px;}
174
  .pvcp_blank_graph{display: flex;align-items: center;justify-content: center;padding: 230px 0;}
175
+
176
+ a.pvcp-action-button.button-primary {
177
+ width: 100%;
178
+ display: block;
179
+ max-width: 80px;
180
+ text-align: center;
181
+ margin: 0 a;
182
+ margin: 4px AUTO;
183
+ }
184
+
185
+ .dotstore_plugin_sidebar .image_box {
186
+ max-width: 100px;
187
+ width: 100%;
188
+ margin: 0 auto;
189
+ }
190
+ .dotstore_plugin_sidebar .image_box img {
191
+ width: 100%;
192
+ max-width: 100%;
193
+ margin: 0 auto;
194
+ }
195
+ .dotstore_plugin_sidebar .content_box h3{margin-top: 5px;}
196
+ .dotstore_plugin_sidebar .content_box {
197
+ text-align: center;
198
+ padding: 0 14px;
199
+ }
200
+ .dotstore_plugin_sidebar .content_box a.btn_style {
201
+ background-color: #0085ba;
202
+ PADDING: 10px;
203
+ border-radius: 4px;
204
+ margin-bottom: 10px;
205
+ display: inline-block;
206
+ color: #fff;
207
+ font-weight: 600;
208
+ }
209
+
210
  @media screen and (max-width: 767px){
211
  .pvcp-main-dashboard .pvcp-table-cover {width: 100%;margin-bottom: 20px;}
212
  #pvcp-postbox-container-2,#pvcp-postbox-container-1{width: 100% !important;}
admin/images/pvcp-icon.png CHANGED
Binary file
admin/images/rate-us.png ADDED
Binary file
admin/images/thedotstore-images/Advanced-Product-Size-Charts-for-WooCommerce.png ADDED
Binary file
admin/images/thedotstore-images/account.png ADDED
Binary file
admin/images/thedotstore-images/check-mark-free.png ADDED
Binary file
admin/images/thedotstore-images/check-mark.png ADDED
Binary file
admin/images/thedotstore-images/menu-icon.png ADDED
Binary file
admin/images/thedotstore-images/popular-plugins/Advance-Menu-Manager-For-WordPress.png ADDED
Binary file
admin/images/thedotstore-images/popular-plugins/Advanced-Flat-Rate-Shipping-Method.png ADDED
Binary file
admin/images/thedotstore-images/popular-plugins/Conditional-Product-Fees-For-WooCommerce-Checkout.png ADDED
Binary file
admin/images/thedotstore-images/popular-plugins/Enhanced-Ecommerce-Google-Analytics-For-WooCommerce.png ADDED
Binary file
admin/images/thedotstore-images/popular-plugins/WooCommerce-Blocker-Prevent-Fake-Orders.png ADDED
Binary file
admin/images/thedotstore-images/screenshots/Custom-style.png ADDED
Binary file
admin/images/thedotstore-images/screenshots/Getting_Started_01.png ADDED
Binary file
admin/images/thedotstore-images/screenshots/Getting_Started_02.png ADDED
Binary file
admin/images/thedotstore-images/screenshots/Getting_Started_03.png ADDED
Binary file
admin/images/thedotstore-images/screenshots/Getting_Started_04.png ADDED
Binary file
admin/images/thedotstore-images/support.png ADDED
Binary file
admin/images/thedotstore-images/trash.png ADDED
Binary file
admin/images/thedotstore-images/upgrade.png ADDED
Binary file
admin/partials/header/plugin-sidebar.php CHANGED
@@ -1,64 +1,146 @@
1
  <?php
 
2
  if ( !defined( 'ABSPATH' ) ) {
3
  exit;
4
  }
5
-
6
  $image_url = esc_url( PVCP_PLUGIN_URL . 'admin/images/right_click.png' );
7
  ?>
8
 
9
  <div class="dotstore_plugin_sidebar">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  <div class="dotstore-important-link">
11
- <h2><span class="dotstore-important-link-title"><?php esc_html_e( 'Important link', PVCP_TEXT_DOMAIN ); ?></span></h2>
 
 
12
  <div class="video-detail important-link">
13
  <ul>
14
  <li>
15
- <img src="<?php echo esc_url( $image_url ); ?>">
16
- <a target="_blank" href="javascript:void(0);"><?php esc_html_e( 'Plugin documentation', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
17
  </li>
18
  <li>
19
- <img src="<?php echo esc_url( $image_url ); ?>">
20
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/support" ); ?>"><?php esc_html_e( 'Support platform', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
21
  </li>
22
  <li>
23
- <img src="<?php echo esc_url( $image_url ); ?>">
24
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/suggest-a-feature/" ); ?>"><?php esc_html_e( 'Suggest A Feature', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
25
  </li>
26
  <li>
27
- <img src="<?php echo esc_url( $image_url ); ?>">
28
- <a target="_blank" href="javascript:void(0);"><?php esc_html_e( 'Changelog', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
29
  </li>
30
  </ul>
31
  </div>
32
  </div>
33
  <div class="dotstore-important-link">
34
- <h2><span class="dotstore-important-link-title"><?php esc_html_e( 'OUR POPULAR PLUGIN', PVCP_TEXT_DOMAIN ); ?></span></h2>
 
 
35
  <div class="video-detail important-link">
36
  <ul>
37
  <li>
38
- <img class="sidebar_plugin_icone" src="<?php echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/Advance_Extra_Cost_Plugin_for_WooCommerce_sidebar.png' ); ?>">
39
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/advanced-flat-rate-shipping-method-for-woocommerce" ); ?>"><?php esc_html_e( 'Woocommerce Conditional Extra Fees', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
40
  </li>
41
  <li>
42
- <img class="sidebar_plugin_icone" src="<?php echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/Woocommerce_Blocker_Lite_Prevent_fake_orders_and_Blacklist_fraud_customers.png' ); ?>">
43
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/product/woocommerce-blocker-lite-prevent-fake-orders-blacklist-fraud-customers/" ); ?>"><?php esc_html_e( 'Woocommerce Blocker', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
44
  </li>
45
  <li>
46
- <img class="sidebar_plugin_icone" src="<?php echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/advanced_product_Size_Chart_WooCommerce_icone.png' ); ?>">
47
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/woocommerce-advanced-product-size-charts/t" ); ?>"><?php esc_html_e( 'Woocommerce Advanced Product Size Charts', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
48
  </li>
49
  <li>
50
- <img class="sidebar_plugin_icone" src="<?php echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/WooCommerce_Enhanced_Ecommerce_Analytics_Integration_with_Conversion_Tracking.png' ); ?>">
51
- <a target="_blank" href="<?php echo esc_url( "http://www.thedotstore.com/woocommerce-enhanced-ecommerce-analytics-integration-with-conversion-tracking" ); ?>"><?php esc_html_e( 'Woo Enhanced Ecommerce Analytics Integration', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
52
  </li>
53
  <li>
54
- <img class="sidebar_plugin_icone" src="<?php echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/AMM.png' ); ?>">
55
- <a target="_blank" href="<?php echo esc_url( "https://www.thedotstore.com/advance-menu-manager-wordpress/" ); ?>"><?php esc_html_e( 'Advanced Menu Manager For WordPress', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
 
 
56
  </li>
57
  </br>
58
  </ul>
59
  </div>
60
  <div class="view-button">
61
- <a class="view_button_dotstore" target="_blank" href="<?php echo esc_url( "http://www.thedotstore.com/plugins/" ); ?>"><?php esc_html_e( 'VIEW ALL', PVCP_TEXT_DOMAIN ); ?></a>
 
 
 
 
62
  </div>
63
  </div>
64
  <!-- html end for popular plugin !-->
1
  <?php
2
+
3
  if ( !defined( 'ABSPATH' ) ) {
4
  exit;
5
  }
 
6
  $image_url = esc_url( PVCP_PLUGIN_URL . 'admin/images/right_click.png' );
7
  ?>
8
 
9
  <div class="dotstore_plugin_sidebar">
10
+ <?php
11
+ $review_url = '';
12
+ $plugin_at = '';
13
+ $review_url = esc_url( 'https://wordpress.org/plugins/page-visit-counter/#reviews' );
14
+ $plugin_at = 'WP.org';
15
+ ?>
16
+ <div class="dotstore-important-link">
17
+ <div class="image_box">
18
+ <img src="<?php
19
+ echo esc_url( plugin_dir_url( dirname( __FILE__, 2 ) ) . 'images/rate-us.png' ) ;
20
+ ?>" alt="<?php
21
+ esc_attr_e( 'Rate us', 'size-chart-for-woocommerce' );
22
+ ?> ">
23
+ </div>
24
+ <div class="content_box">
25
+ <h3>Like This Plugin?</h3>
26
+ <p>Your Review is very important to us as it helps us to grow more.</p>
27
+ <a class="btn_style" href="<?php
28
+ echo $review_url ;
29
+ ?>" target="_blank">Review Us on <?php
30
+ echo $plugin_at ;
31
+ ?></a>
32
+ </div>
33
+ </div>
34
  <div class="dotstore-important-link">
35
+ <h2><span class="dotstore-important-link-title"><?php
36
+ esc_html_e( 'Important link', PVCP_TEXT_DOMAIN );
37
+ ?></span></h2>
38
  <div class="video-detail important-link">
39
  <ul>
40
  <li>
41
+ <img src="<?php
42
+ echo esc_url( $image_url ) ;
43
+ ?>">
44
+ <a target="_blank" href="javascript:void(0);"><?php
45
+ esc_html_e( 'Plugin documentation', PVCP_TEXT_DOMAIN );
46
+ ?></a>
47
  </li>
48
  <li>
49
+ <img src="<?php
50
+ echo esc_url( $image_url ) ;
51
+ ?>">
52
+ <a target="_blank" href="<?php
53
+ echo esc_url( "https://www.thedotstore.com/support" ) ;
54
+ ?>"><?php
55
+ esc_html_e( 'Support platform', PVCP_TEXT_DOMAIN );
56
+ ?></a>
57
  </li>
58
  <li>
59
+ <img src="<?php
60
+ echo esc_url( $image_url ) ;
61
+ ?>">
62
+ <a target="_blank" href="<?php
63
+ echo esc_url( "https://www.thedotstore.com/suggest-a-feature/" ) ;
64
+ ?>"><?php
65
+ esc_html_e( 'Suggest A Feature', PVCP_TEXT_DOMAIN );
66
+ ?></a>
67
  </li>
68
  <li>
69
+ <img src="<?php
70
+ echo esc_url( $image_url ) ;
71
+ ?>">
72
+ <a target="_blank" href="javascript:void(0);"><?php
73
+ esc_html_e( 'Changelog', PVCP_TEXT_DOMAIN );
74
+ ?></a>
75
  </li>
76
  </ul>
77
  </div>
78
  </div>
79
  <div class="dotstore-important-link">
80
+ <h2><span class="dotstore-important-link-title"><?php
81
+ esc_html_e( 'OUR POPULAR PLUGIN', PVCP_TEXT_DOMAIN );
82
+ ?></span></h2>
83
  <div class="video-detail important-link">
84
  <ul>
85
  <li>
86
+ <img class="sidebar_plugin_icone" src="<?php
87
+ echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/Advance_Extra_Cost_Plugin_for_WooCommerce_sidebar.png' ) ;
88
+ ?>">
89
+ <a target="_blank" href="<?php
90
+ echo esc_url( "https://www.thedotstore.com/advanced-flat-rate-shipping-method-for-woocommerce" ) ;
91
+ ?>"><?php
92
+ esc_html_e( 'Woocommerce Conditional Extra Fees', PVCP_TEXT_DOMAIN );
93
+ ?></a>
94
  </li>
95
  <li>
96
+ <img class="sidebar_plugin_icone" src="<?php
97
+ echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/Woocommerce_Blocker_Lite_Prevent_fake_orders_and_Blacklist_fraud_customers.png' ) ;
98
+ ?>">
99
+ <a target="_blank" href="<?php
100
+ echo esc_url( "https://www.thedotstore.com/product/woocommerce-blocker-lite-prevent-fake-orders-blacklist-fraud-customers/" ) ;
101
+ ?>"><?php
102
+ esc_html_e( 'Woocommerce Blocker', PVCP_TEXT_DOMAIN );
103
+ ?></a>
104
  </li>
105
  <li>
106
+ <img class="sidebar_plugin_icone" src="<?php
107
+ echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/advanced_product_Size_Chart_WooCommerce_icone.png' ) ;
108
+ ?>">
109
+ <a target="_blank" href="<?php
110
+ echo esc_url( "https://www.thedotstore.com/woocommerce-advanced-product-size-charts/t" ) ;
111
+ ?>"><?php
112
+ esc_html_e( 'Woocommerce Advanced Product Size Charts', PVCP_TEXT_DOMAIN );
113
+ ?></a>
114
  </li>
115
  <li>
116
+ <img class="sidebar_plugin_icone" src="<?php
117
+ echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/WooCommerce_Enhanced_Ecommerce_Analytics_Integration_with_Conversion_Tracking.png' ) ;
118
+ ?>">
119
+ <a target="_blank" href="<?php
120
+ echo esc_url( "http://www.thedotstore.com/woocommerce-enhanced-ecommerce-analytics-integration-with-conversion-tracking" ) ;
121
+ ?>"><?php
122
+ esc_html_e( 'Woo Enhanced Ecommerce Analytics Integration', PVCP_TEXT_DOMAIN );
123
+ ?></a>
124
  </li>
125
  <li>
126
+ <img class="sidebar_plugin_icone" src="<?php
127
+ echo esc_url( PVCP_PLUGIN_URL . 'admin/images/dotstore-plugins/AMM.png' ) ;
128
+ ?>">
129
+ <a target="_blank" href="<?php
130
+ echo esc_url( "https://www.thedotstore.com/advance-menu-manager-wordpress/" ) ;
131
+ ?>"><?php
132
+ esc_html_e( 'Advanced Menu Manager For WordPress', PVCP_TEXT_DOMAIN );
133
+ ?></a>
134
  </li>
135
  </br>
136
  </ul>
137
  </div>
138
  <div class="view-button">
139
+ <a class="view_button_dotstore" target="_blank" href="<?php
140
+ echo esc_url( "http://www.thedotstore.com/plugins/" ) ;
141
+ ?>"><?php
142
+ esc_html_e( 'VIEW ALL', PVCP_TEXT_DOMAIN );
143
+ ?></a>
144
  </div>
145
  </div>
146
  <!-- html end for popular plugin !-->
includes/class-page-visit-counter-user-feedback.php ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Plugin review class.
5
+ * Prompts users to give a review of the plugin on WordPress.org after a period of usage.
6
+ *
7
+ * Heavily based on code by CoBlocks
8
+ * https://github.com/coblocks/coblocks/blob/master/includes/admin/class-coblocks-feedback.php
9
+ *
10
+ * @package PageVisitCount
11
+ * @author theDotstore from PageVisitCount
12
+ * @link https://editorsPageVisitCount.com
13
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
14
+ */
15
+ // Exit if accessed directly.
16
+ if ( !defined( 'ABSPATH' ) ) {
17
+ exit;
18
+ }
19
+ /**
20
+ * Main Feedback Notice Class
21
+ */
22
+ class PageVisitCount_User_Feedback
23
+ {
24
+ /**
25
+ * Slug.
26
+ *
27
+ * @var string $slug
28
+ */
29
+ private $slug ;
30
+ /**
31
+ * Name.
32
+ *
33
+ * @var string $name
34
+ */
35
+ private $name ;
36
+ /**
37
+ * Time limit.
38
+ *
39
+ * @var string $time_limit
40
+ */
41
+ private $time_limit ;
42
+ /**
43
+ * No Bug Option.
44
+ *
45
+ * @var string $nobug_option
46
+ */
47
+ public $nobug_option ;
48
+ /**
49
+ * Activation Date Option.
50
+ *
51
+ * @var string $date_option
52
+ */
53
+ public $date_option ;
54
+ /**
55
+ * Class constructor.
56
+ *
57
+ * @param string $args Arguments.
58
+ */
59
+ public function __construct( $args )
60
+ {
61
+ $this->slug = $args['slug'];
62
+ $this->name = $args['name'];
63
+ $this->date_option = $this->slug . '_activation_date';
64
+ $this->nobug_option = $this->slug . '_no_bug';
65
+
66
+ if ( isset( $args['time_limit'] ) ) {
67
+ $this->time_limit = $args['time_limit'];
68
+ } else {
69
+ $this->time_limit = WEEK_IN_SECONDS;
70
+ }
71
+
72
+ // Add actions.
73
+ add_action( 'admin_init', array( $this, 'check_installation_date' ) );
74
+ add_action( 'admin_init', array( $this, 'set_no_bug' ), 5 );
75
+ }
76
+
77
+ /**
78
+ * Seconds to words.
79
+ *
80
+ * @param string $seconds Seconds in time.
81
+ */
82
+ public function seconds_to_words( $seconds )
83
+ {
84
+ // Get the years.
85
+ $years = intval( $seconds ) / YEAR_IN_SECONDS % 100;
86
+
87
+ if ( $years > 1 ) {
88
+ /* translators: Number of years */
89
+ return sprintf( __( '%s years', 'woocommerce-conditional-product-fees-for-checkout' ), $years );
90
+ } elseif ( $years > 0 ) {
91
+ return __( 'a year', 'woocommerce-conditional-product-fees-for-checkout' );
92
+ }
93
+
94
+ // Get the weeks.
95
+ $weeks = intval( $seconds ) / WEEK_IN_SECONDS % 52;
96
+
97
+ if ( $weeks > 1 ) {
98
+ /* translators: Number of weeks */
99
+ return sprintf( __( '%s weeks', 'woocommerce-conditional-product-fees-for-checkout' ), $weeks );
100
+ } elseif ( $weeks > 0 ) {
101
+ return __( 'a week', 'woocommerce-conditional-product-fees-for-checkout' );
102
+ }
103
+
104
+ // Get the days.
105
+ $days = intval( $seconds ) / DAY_IN_SECONDS % 7;
106
+
107
+ if ( $days > 1 ) {
108
+ /* translators: Number of days */
109
+ return sprintf( __( '%s days', 'woocommerce-conditional-product-fees-for-checkout' ), $days );
110
+ } elseif ( $days > 0 ) {
111
+ return __( 'a day', 'woocommerce-conditional-product-fees-for-checkout' );
112
+ }
113
+
114
+ // Get the hours.
115
+ $hours = intval( $seconds ) / HOUR_IN_SECONDS % 24;
116
+
117
+ if ( $hours > 1 ) {
118
+ /* translators: Number of hours */
119
+ return sprintf( __( '%s hours', 'woocommerce-conditional-product-fees-for-checkout' ), $hours );
120
+ } elseif ( $hours > 0 ) {
121
+ return __( 'an hour', 'woocommerce-conditional-product-fees-for-checkout' );
122
+ }
123
+
124
+ // Get the minutes.
125
+ $minutes = intval( $seconds ) / MINUTE_IN_SECONDS % 60;
126
+
127
+ if ( $minutes > 1 ) {
128
+ /* translators: Number of minutes */
129
+ return sprintf( __( '%s minutes', 'woocommerce-conditional-product-fees-for-checkout' ), $minutes );
130
+ } elseif ( $minutes > 0 ) {
131
+ return __( 'a minute', 'woocommerce-conditional-product-fees-for-checkout' );
132
+ }
133
+
134
+ // Get the seconds.
135
+ $seconds = intval( $seconds ) % 60;
136
+
137
+ if ( $seconds > 1 ) {
138
+ /* translators: Number of seconds */
139
+ return sprintf( __( '%s seconds', 'woocommerce-conditional-product-fees-for-checkout' ), $seconds );
140
+ } elseif ( $seconds > 0 ) {
141
+ return __( 'a second', 'woocommerce-conditional-product-fees-for-checkout' );
142
+ }
143
+
144
+ }
145
+
146
+ /**
147
+ * Check date on admin initiation and add to admin notice if it was more than the time limit.
148
+ */
149
+ public function check_installation_date()
150
+ {
151
+
152
+ if ( !get_site_option( $this->nobug_option ) || false === get_site_option( $this->nobug_option ) ) {
153
+ add_site_option( $this->date_option, time() );
154
+ // Retrieve the activation date.
155
+ $install_date = get_site_option( $this->date_option );
156
+ // If difference between install date and now is greater than time limit, then display notice.
157
+ if ( time() - $install_date > $this->time_limit ) {
158
+ add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
159
+ }
160
+ }
161
+
162
+ }
163
+
164
+ /**
165
+ * Display the admin notice.
166
+ */
167
+ public function display_admin_notice()
168
+ {
169
+ $screen = get_current_screen();
170
+
171
+ if ( isset( $screen->base ) && ('plugins' === $screen->base || 'dotstore-plugins_page_pvcp-list' === $screen->id) ) {
172
+ $no_bug_url = wp_nonce_url( admin_url( 'plugins.php?' . $this->nobug_option . '=true' ), 'editorsPageVisitCount-feedback-nounce' );
173
+ $time = $this->seconds_to_words( time() - get_site_option( $this->date_option ) );
174
+ ?>
175
+
176
+ <style>
177
+ .notice.editorsPageVisitCount-notice {
178
+ border-left-color: #272c51 !important;
179
+ padding: 20px;
180
+ }
181
+ .rtl .notice.editorsPageVisitCount-notice {
182
+ border-right-color: #272c51 !important;
183
+ }
184
+ .notice.notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner {
185
+ display: table;
186
+ width: 100%;
187
+ }
188
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-notice-icon,
189
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-notice-content,
190
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-install-now {
191
+ display: table-cell;
192
+ vertical-align: middle;
193
+ }
194
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-icon {
195
+ color: #509ed2;
196
+ font-size: 13px;
197
+ width: 60px;
198
+ }
199
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-icon img {
200
+ width: 64px;
201
+ }
202
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-content {
203
+ padding: 0 40px 0 20px;
204
+ }
205
+ .notice.editorsPageVisitCount-notice p {
206
+ padding: 0;
207
+ margin: 0;
208
+ }
209
+ .notice.editorsPageVisitCount-notice h3 {
210
+ margin: 0 0 5px;
211
+ }
212
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-install-now {
213
+ text-align: center;
214
+ }
215
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-install-now .editorsPageVisitCount-install-button {
216
+ padding: 6px 50px;
217
+ height: auto;
218
+ line-height: 20px;
219
+ background: #32396a;
220
+ border-color: #272c51 #0f153e #040823;
221
+ box-shadow: 0 1px 0 #0d1f82;
222
+ text-shadow: 0 -1px 1px #272c51, 1px 0 1px #171b3e, 0 1px 1px #0a1035, -1px 0 1px #040721;
223
+ }
224
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-install-now .editorsPageVisitCount-install-button:hover {
225
+ background: #272c51;
226
+ }
227
+ .notice.editorsPageVisitCount-notice a.no-thanks {
228
+ display: block;
229
+ margin-top: 10px;
230
+ color: #72777c;
231
+ text-decoration: none;
232
+ }
233
+
234
+ .notice.editorsPageVisitCount-notice a.no-thanks:hover {
235
+ color: #444;
236
+ }
237
+
238
+ @media (max-width: 767px) {
239
+
240
+ .notice.notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner {
241
+ display: block;
242
+ }
243
+ .notice.editorsPageVisitCount-notice {
244
+ padding: 20px !important;
245
+ }
246
+ .notice.editorsPageVisitCount-noticee .editorsPageVisitCount-notice-inner {
247
+ display: block;
248
+ }
249
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-notice-content {
250
+ display: block;
251
+ padding: 0;
252
+ }
253
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-notice-icon {
254
+ display: none;
255
+ }
256
+
257
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .editorsPageVisitCount-install-now {
258
+ margin-top: 20px;
259
+ display: block;
260
+ text-align: left;
261
+ }
262
+
263
+ .notice.editorsPageVisitCount-notice .editorsPageVisitCount-notice-inner .no-thanks {
264
+ display: inline-block;
265
+ margin-left: 15px;
266
+ }
267
+ }
268
+ </style>
269
+ <div class="notice updated editorsPageVisitCount-notice">
270
+ <div class="editorsPageVisitCount-notice-inner">
271
+ <div class="editorsPageVisitCount-notice-icon">
272
+ <?php
273
+ /* translators: 1. Name */
274
+ ?>
275
+ <img src="<?php
276
+ echo esc_url( plugins_url( 'admin/images/pvcp-icon.png', dirname( __FILE__ ) ) ) ;
277
+ ?>" alt="<?php
278
+ printf( esc_attr__( '%s WordPress Plugin', 'woocommerce-conditional-product-fees-for-checkout' ), esc_attr( $this->name ) );
279
+ ?>" />
280
+ </div>
281
+ <div class="editorsPageVisitCount-notice-content">
282
+ <?php
283
+ /* translators: 1. Name */
284
+ ?>
285
+ <h3><?php
286
+ printf( esc_html__( 'Are you enjoying %s Plugin?', 'woocommerce-conditional-product-fees-for-checkout' ), esc_html( $this->name ) );
287
+ ?></h3>
288
+ <p>
289
+ <?php
290
+ /* translators: 1. Name, 2. Time */
291
+ ?>
292
+ <?php
293
+ printf( esc_html__( 'You have been using %1$s for %2$s now. Mind leaving a review to let us know know what you think? We\'d really appreciate it!', 'woocommerce-conditional-product-fees-for-checkout' ), esc_html( $this->name ), esc_html( $time ) );
294
+ ?>
295
+ </p>
296
+ </div>
297
+ <div class="editorsPageVisitCount-install-now">
298
+ <?php
299
+ $review_url = '';
300
+ $review_url = esc_url( 'https://wordpress.org/plugins/page-visit-counter/#reviews' );
301
+ printf( '<a href="%1$s" class="button button-primary editorsPageVisitCount-install-button" target="_blank">%2$s</a>', esc_url( $review_url ), esc_html__( 'Leave a Review', 'woocommerce-conditional-product-fees-for-checkout' ) );
302
+ ?>
303
+ <a href="<?php
304
+ echo esc_url( $no_bug_url ) ;
305
+ ?>" class="no-thanks"><?php
306
+ echo esc_html__( 'No thanks / I already have', 'woocommerce-conditional-product-fees-for-checkout' ) ;
307
+ ?></a>
308
+ </div>
309
+ </div>
310
+ </div>
311
+ <?php
312
+ }
313
+
314
+ }
315
+
316
+ /**
317
+ * Set the plugin to no longer bug users if user asks not to be.
318
+ */
319
+ public function set_no_bug()
320
+ {
321
+ // Bail out if not on correct page.
322
+ // phpcs:ignore
323
+ if ( !isset( $_GET['_wpnonce'] ) || (!wp_verify_nonce( $_GET['_wpnonce'], 'editorsPageVisitCount-feedback-nounce' ) || !is_admin() || !isset( $_GET[$this->nobug_option] ) || !current_user_can( 'manage_options' )) ) {
324
+ return;
325
+ }
326
+ add_site_option( $this->nobug_option, true );
327
+ }
328
+
329
+ }
330
+ /*
331
+ * Instantiate the PageVisitCount_User_Feedback class.
332
+ */
333
+ new PageVisitCount_User_Feedback( array(
334
+ 'slug' => 'editorspage_visit_count_plugin_feedback',
335
+ 'name' => __( 'Page Visit Counter', 'woocommerce-conditional-product-fees-for-checkout' ),
336
+ 'time_limit' => WEEK_IN_SECONDS,
337
+ ) );
includes/class-page-visit-counter.php CHANGED
@@ -139,6 +139,10 @@ class Page_Visit_Counter
139
  * The class responsible for defining shortcode for wizard
140
  * side of the site.
141
  */
 
 
 
 
142
  $this->loader = new Page_Visit_Counter_Loader();
143
  }
144
 
139
  * The class responsible for defining shortcode for wizard
140
  * side of the site.
141
  */
142
+ /**
143
+ * User review admin block
144
+ */
145
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-page-visit-counter-user-feedback.php';
146
  $this->loader = new Page_Visit_Counter_Loader();
147
  }
148
 
page-visit-counter.php CHANGED
@@ -9,8 +9,8 @@
9
  * Plugin Name: Page Visit Counter
10
  * Plugin URI: https://www.thedotstore.com/page-visit-counter/
11
  * Description: This plugin will count the total visits of the pages of your site.
12
- * Version: 6.0.3
13
- * Author: Thedotstore
14
  * Author URI: https://www.thedotstore.com/
15
  * License: GPL-2.0+
16
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
@@ -66,7 +66,7 @@ if ( !function_exists( 'pvc_fs' ) ) {
66
  }
67
 
68
  if ( !defined( 'PVCP_VERSION' ) ) {
69
- define( 'PVCP_VERSION', '6.0.3' );
70
  }
71
  if ( !defined( 'PVCP_PLUGIN_URL' ) ) {
72
  define( 'PVCP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
9
  * Plugin Name: Page Visit Counter
10
  * Plugin URI: https://www.thedotstore.com/page-visit-counter/
11
  * Description: This plugin will count the total visits of the pages of your site.
12
+ * Version: 6.0.4
13
+ * Author: theDotstore
14
  * Author URI: https://www.thedotstore.com/
15
  * License: GPL-2.0+
16
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
66
  }
67
 
68
  if ( !defined( 'PVCP_VERSION' ) ) {
69
+ define( 'PVCP_VERSION', '6.0.4' );
70
  }
71
  if ( !defined( 'PVCP_PLUGIN_URL' ) ) {
72
  define( 'PVCP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );