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 | Page Visit Counter |
Version | 6.0.4 |
Comparing to | |
See all releases |
Code changes from version 6.0.3 to 6.0.4
- README.txt +9 -5
- admin/css/page-visit-counter-admin.css +37 -2
- admin/images/pvcp-icon.png +0 -0
- admin/images/rate-us.png +0 -0
- admin/images/thedotstore-images/Advanced-Product-Size-Charts-for-WooCommerce.png +0 -0
- admin/images/thedotstore-images/account.png +0 -0
- admin/images/thedotstore-images/check-mark-free.png +0 -0
- admin/images/thedotstore-images/check-mark.png +0 -0
- admin/images/thedotstore-images/menu-icon.png +0 -0
- admin/images/thedotstore-images/popular-plugins/Advance-Menu-Manager-For-WordPress.png +0 -0
- admin/images/thedotstore-images/popular-plugins/Advanced-Flat-Rate-Shipping-Method.png +0 -0
- admin/images/thedotstore-images/popular-plugins/Conditional-Product-Fees-For-WooCommerce-Checkout.png +0 -0
- admin/images/thedotstore-images/popular-plugins/Enhanced-Ecommerce-Google-Analytics-For-WooCommerce.png +0 -0
- admin/images/thedotstore-images/popular-plugins/WooCommerce-Blocker-Prevent-Fake-Orders.png +0 -0
- admin/images/thedotstore-images/screenshots/Custom-style.png +0 -0
- admin/images/thedotstore-images/screenshots/Getting_Started_01.png +0 -0
- admin/images/thedotstore-images/screenshots/Getting_Started_02.png +0 -0
- admin/images/thedotstore-images/screenshots/Getting_Started_03.png +0 -0
- admin/images/thedotstore-images/screenshots/Getting_Started_04.png +0 -0
- admin/images/thedotstore-images/support.png +0 -0
- admin/images/thedotstore-images/trash.png +0 -0
- admin/images/thedotstore-images/upgrade.png +0 -0
- admin/partials/header/plugin-sidebar.php +104 -22
- includes/class-page-visit-counter-user-feedback.php +337 -0
- includes/class-page-visit-counter.php +4 -0
- 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:
|
5 |
Author URI: https://www.thedotstore.com/
|
6 |
Contributors: dots, ketuchetan, chiragpatel, jitendrabanjara1991, niravcse006
|
7 |
-
Stable tag: 6.0.
|
8 |
-
WC tested up to:
|
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.
|
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://
|
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:
|
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:
|
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
|
|
|
|
|
12 |
<div class="video-detail important-link">
|
13 |
<ul>
|
14 |
<li>
|
15 |
-
<img src="<?php
|
16 |
-
|
|
|
|
|
|
|
|
|
17 |
</li>
|
18 |
<li>
|
19 |
-
<img src="<?php
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
</li>
|
22 |
<li>
|
23 |
-
<img src="<?php
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
</li>
|
26 |
<li>
|
27 |
-
<img src="<?php
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
</li>
|
30 |
</ul>
|
31 |
</div>
|
32 |
</div>
|
33 |
<div class="dotstore-important-link">
|
34 |
-
<h2><span class="dotstore-important-link-title"><?php
|
|
|
|
|
35 |
<div class="video-detail important-link">
|
36 |
<ul>
|
37 |
<li>
|
38 |
-
<img class="sidebar_plugin_icone" src="<?php
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
</li>
|
41 |
<li>
|
42 |
-
<img class="sidebar_plugin_icone" src="<?php
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
</li>
|
45 |
<li>
|
46 |
-
<img class="sidebar_plugin_icone" src="<?php
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
</li>
|
49 |
<li>
|
50 |
-
<img class="sidebar_plugin_icone" src="<?php
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
</li>
|
53 |
<li>
|
54 |
-
<img class="sidebar_plugin_icone" src="<?php
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
</li>
|
57 |
</br>
|
58 |
</ul>
|
59 |
</div>
|
60 |
<div class="view-button">
|
61 |
-
<a class="view_button_dotstore" target="_blank" href="<?php
|
|
|
|
|
|
|
|
|
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.
|
13 |
-
* Author:
|
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.
|
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__ ) );
|