Version Description
(29 Nov 2019) =
- Minor Fixes
Download this release
Release Info
Developer | magazine3 |
Plugin | Schema & Structured Data for WP & AMP |
Version | 1.9.16.2 |
Comparing to | |
See all releases |
Code changes from version 1.9.16.1 to 1.9.16.2
- admin_section/css/main-style.css +15 -2
- admin_section/css/main-style.min.css +66 -1
- admin_section/images/reviews_platform_icon/booking-img.png +0 -0
- admin_section/images/reviews_platform_icon/cars-img.png +0 -0
- admin_section/images/reviews_platform_icon/hotels-img.png +0 -0
- admin_section/images/reviews_platform_icon/lawyers-img.png +0 -0
- admin_section/js/saswp-newsletter.js +0 -0
- admin_section/settings.php +19 -45
- core/array-list/plugins.php +132 -0
- google_review/google_review.php +303 -0
- google_review/google_review_page.php +400 -0
- google_review/google_review_setup.php +245 -0
- google_review/google_review_widget.php +129 -0
- metaboxes/help.php +21 -0
- readme.txt +5 -1
- structured-data-for-wp.php +2 -2
admin_section/css/main-style.css
CHANGED
@@ -214,7 +214,7 @@ Tooltip css ends here
|
|
214 |
float:right;
|
215 |
}
|
216 |
.saswp-settings-first-div{
|
217 |
-
width:
|
218 |
}
|
219 |
.saswp-settings-container{
|
220 |
display: inline-flex;
|
@@ -1017,7 +1017,20 @@ Google review module ends here
|
|
1017 |
|
1018 |
.saswp-nav-menu-list label{
|
1019 |
padding-left: 10px;
|
1020 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1021 |
/*** How to schema css starts here ***/
|
1022 |
|
1023 |
.saswp-dynamic-properties
|
214 |
float:right;
|
215 |
}
|
216 |
.saswp-settings-first-div{
|
217 |
+
width: 92%;
|
218 |
}
|
219 |
.saswp-settings-container{
|
220 |
display: inline-flex;
|
1017 |
|
1018 |
.saswp-nav-menu-list label{
|
1019 |
padding-left: 10px;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
/** Coupon Code CSS **/
|
1023 |
+
.saswp-hide{
|
1024 |
+
display:none;
|
1025 |
+
}
|
1026 |
+
.saswp-settings-second-div .saswp-upgrade-pro.promo-cpn{
|
1027 |
+
display:block;
|
1028 |
+
}
|
1029 |
+
.saswp-upgrade-pro.promo-cpn{
|
1030 |
+
border: 1px solid #558B2F
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
|
1034 |
/*** How to schema css starts here ***/
|
1035 |
|
1036 |
.saswp-dynamic-properties
|
admin_section/css/main-style.min.css
CHANGED
@@ -1 +1,66 @@
|
|
1 |
-
.saswp_warning{color:#ef6c00!important}.saswp_hide{display:none}.saswp-general table th{width:auto;font-weight:600;padding:0}.saswp-general table{margin-top:0}.saswp-general table td{padding:5px}.saswp-knowledge table th{width:auto;padding:0}.saswp-knowledge table{margin-top:0}.saswp-knowledge table td{padding:5px}.saswp-schema table th{width:auto;padding:0}.saswp-schema table{margin-top:0}.saswp-schema table td{padding:5px}.saswp-amp table th{width:auto;padding:0}.saswp-amp table{margin-top:0}.saswp-amp table td{padding:5px}.saswp-help table th{width:auto;padding:0}.saswp-support table th{width:auto;padding:0}.saswp-review table th{width:auto;padding:0}.saswp-help table{margin-top:0}.saswp-help table td{padding:5px}.saswp-settings-list{display:inline-block;width:100%}.saswp-settings-list li{padding-left:0}.saswp-settings-list li div label{font-weight:600}.saswp-general h2{margin-bottom:0}.saswp-knowledge h2{margin-bottom:0}.saswp-schema h2{margin-bottom:0}.saswp-help h2{margin-bottom:0}.saswp-settings-form p.submit{margin-top:0}.saswp_qanda_p{font-weight:500}.saswp-display-none{display:none!important}.saswp-placement-groups{border:1px solid #e5e5e5}.saswp-query-success{color:#060}.saswp-query-error{color:#bf3322}.saswp-tools table th{width:auto;padding:0}.saswp-tools table{margin-top:0}.saswp-tools table td{padding:5px}.saswp-tools-field-title strong{padding-right:130px}.saswp-tools .saswp-tooltip{width:230px}.saswp-tools .saswp-knowledge-label{float:left}.saswp-error{color:red!important}.saswp-tooltip{position:relative;display:inline-block}.saswp-tooltip .saswp-tooltiptext{visibility:hidden;width:200px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1;bottom:100%;left:50%;margin-left:-25px}.saswp-tooltiptext::after{content:"";position:absolute;top:100%;left:10%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent transparent}.saswp-knowledge-base .saswp-knowledge-label{width:200px;float:left;clear:both}.saswp-knowledge-base .saswp-knowledge-field{width:75%;float:right}.saswp-social-fileds ul{display:grid;grid-template-columns:26.5% 1fr}.saswp-social-fileds li{display:flex}.saswp-social-fileds .saswp-knowledge-field{width:100%;margin-left:10px}.saswp-social-fileds .saswp-knowledge-field input{float:right;margin:inherit}.saswp-schema-type-fields .saswp-knowledge-label{width:200px;float:left;clear:both}.saswp-schema-type-fields .saswp-knowledge-field{width:75%;float:right}.saswp-settings-first-div{width:70%}.saswp-settings-container{display:inline-flex;width:100%}.saswp-settings-second-div{float:right;position:relative;top:20px;margin-right:30px;margin-top:37px}.saswp-feedback-panel{height:200px;width:280px;background:#fff;position:relative}.saswp-start-quck-setup{position:relative;float:inherit;top:7px;left:15px}.saswp-feedback-panel ul{list-style-type:circle;list-style:decimal;padding-left:30px;font-size:15px}.saswp-feedback-panel a{text-decoration:none}.saswp-feedback-panel h2{text-align:center;padding-top:18px}.saswp-social-sharing-buttons{text-align:center;padding-top:20px}.saswp-facebook-share{background:#3b5998;box-shadow:0 0 0 #1b95e0!important;color:#fff!important;line-height:20px!important;height:21px!important;border-radius:3px;margin-right:5px}.saswp-social-sharing-buttons a{text-align:center;padding:8px}.twitter-share-button{background:#1b95e0!important;box-shadow:0 0 0 #1b95e0!important;color:#fff!important;line-height:20px!important;height:21px!important;border-radius:3px;margin-left:5px}.saswp-placement-button{padding:3px 10px;color:#0d0d0d;font-size:14px;border:1px solid #aaa;border-radius:2px;background:linear-gradient(#ededed,#fff)}.saswp-placement-table td{padding:5px 10px!important}.saswp-archive-div .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-archive-div .saswp-knowledge-label{float:left;clear:both}.saswp-amp .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-amp .saswp-knowledge-label{float:left;clear:both}.saswp-review .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-review .saswp-knowledge-label{float:left;clear:both}.saswp-compativility-div .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-compativility-div .saswp-knowledge-label{float:left;clear:both}.saswp-compativility-div li{display:inline-flex}.saswp-seller-div .saswp-knowledge-label{float:left;clear:both}.saswp-seller-div .saswp-knowledge-field{float:left;width:70%}.saswp-post-specific-tab-wrapper{display:inline-block;width:25%;vertical-align:top;box-sizing:border-box;padding-right:10px}.saswp-post-specific-container{display:inline-block;width:calc(75% - 1px);border-left:1px solid #eee}.saswp-post-specific-wrapper{padding:10px}.saswp-tab a.selected{background-color:#ccc}.saswp-tab-links{display:block;background-color:inherit;color:#000;padding:6px 10px;outline:0;text-align:left;cursor:pointer;transition:.3s;font-size:15px;width:130px;overflow:hidden;margin-right:10px}.saswp-star-rating{cursor:pointer}.saswp-post-specific-wrapper select{width:100%}.saswp-review-tables{width:100%}.saswp-over-all-raring{float:right}.saswp-review-pros-and-cons{position:relative;clear:both}.saswp-review-pros-and-cons>div:first{padding-left:10px}.saswp-review-pros-and-cons>div{width:49%;display:inline-block}.saswp-review-pros-and-cons>div:nth-child(2){padding-left:12px}.saswp-wp-ediot-desc{margin-bottom:-23px;display:block}.saswp-review-description{margin-top:40px;padding-top:10px;border-top:1px solid #eee}.saswp-review-pros-and-cons{margin-top:40px;padding-top:10px;border-top:1px solid #eee}.saspw-review-item-list{margin-top:20px;border-top:1px solid #eee}.saswp-review-item-list-table{padding-bottom:10px}#sasw-review input[type=text]{width:180px}#sasw-review input[type=number]{width:180px}#saswp-review-item-enable{width:10px}.saswp-enable-review-on-post{padding-bottom:10px}.saswp-enable-review-on-post label{font-weight:500}.saswp-compatibility table th{width:auto;padding:0}.saswp-compatibility .saswp-knowledge-label{float:left;clear:both}.saswp-tools .saswp-knowledge-label{float:left;clear:both}.saswp-tools .saswp-knowledge-field{float:right;width:69%;padding-bottom:10px}.saswp_kg_logo,.saswp_person_fields{background-color:#fff!important}.saswp_image_thumbnail{padding-top:5px;display:inline-block}.saswp-compatibility .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-job-posting-note,.saswp-schem-type-note{color:#d2691e}.saswp-custom-fields-name{border:1px solid #aaa;border-radius:4px}.saswp-option-table-class p{margin:auto;font-style:italic;color:#666}.saswp-switch{position:relative;display:inline-block;width:40px;height:22px;border:20px}.saswp-switch input{opacity:0;width:0;height:0}.saswp-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#5a6783;transition:.4s;border-radius:20px}.saswp-slider:before{position:absolute;content:"";height:15px;width:15px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:20px}input:checked+.saswp-slider{background-color:#61bd3b;border-radius:30px}input:focus+.saswp-slider{box-shadow:0 0 1px #2196f3}input:checked+.saswp-slider:before{transform:translateX(15px)}.saswp-slider.saswp-round{border-radius:34px}.saswp-slider.saswp-round:before{border-radius:50%}.saswp-tab-nav li{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;border-bottom:1px solid #eee}.saswp-tab-nav .selected{background-color:#ccc}.saswp-single-post-restore .saswp-switch{height:28px}.saswp-single-post-restore .saswp-slider:before{height:20px}.option-table-class{width:100%}.option-table-class tr td{padding:10px 10px 10px 10px}.option-table-class tr>td{width:30%}.option-table-class tr td:last-child{width:60%}.saswp-custom-fields-table{width:100%}.saswp-custom-fields-table input{width:100%}.saswp-custom-fields-table tr td{padding:10px 10px 10px 10px}.saswp-custom-fields-table td{width:30%;vertical-align:top}.saswp-option-table-class input[type=text],.saswp-option-table-class select{width:100%}.saswp-paywall-table-class input[type=text],.saswp-paywall-table-class select{width:100%}.saswp-email_schema table th{width:auto;padding:0}.saswp-email_schema .saswp-knowledge-label{float:left;clear:both}.saswp-email_schema .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-add-on-plugin label{margin-top:10px}.saswp-add-on-plugin span{width:250px;display:inline-block}.saswp-knowledge-label label[for=saswp_search_box_schema_checkbox]{padding-left:10px}.saswp-knowledge-label label[for=saswp-woocommerce-booking-checkbox]{padding-left:10px}.saswp-knowledge-label label[for=saswp-woocommerce-membership-checkbox]{padding-left:10px}.saswp-global-selected{color:#000;font-weight:500}#saswp-global-tabs a{cursor:pointer}#saswp-global-tabs{padding-left:5px}#saswp-tools-tabs a{cursor:pointer}#saswp-review-tabs a{cursor:pointer}#saswp-tools-tabs{padding-left:5px}.saswp-need-help{padding-left:60px}.saswp-heading{display:inline-flex;align-items:baseline}.saswp-heading h2{margin-bottom:0}.saswp-view-docs a{margin-right:5px!important;margin-top:10px!important;float:right}.saswp-tabs .nav-tab{margin-left:4px}.saswp-panel{padding:7px 18px;background-color:#fff;box-shadow:0 0 20px 1px #d2cccc}.saswp-g-review-header{margin-top:50px}.saswp-g-review-body{display:inline-grid;grid-template-columns:1fr 300px;grid-gap:30px;margin-top:30px}.saswp-channel-list{margin-right:15px}.saswp-input-fields{display:inline-flex;align-items:center;margin-bottom:8px;width:100%}.saswp-input-fields label{width:130px}.saswp-input-fields select{width:100%}.saswp-panel h3{font-size:20px;line-height:1.4;color:#222;text-align:center;margin:10px 0 20px 0}.saswp-input-fields a.button-primary{margin-top:10px}.saswp-glg-review-body{display:grid;grid-template-columns:100px 1fr;grid-gap:20px;background:#fff;padding:20px;box-shadow:0 0 20px 1px #d2cccc;margin-bottom:30px}.saswp-g-plus{float:right;font-size:15px}.saswp-rtng{padding-left:5px;font-size:14px}.saswp-pt-dt{font-size:12px;color:#999;font-weight:600;margin-top:5px;display:inline-block}.saswp-str{display:inline-block;width:100%;vertical-align:middle}.saswp-athr{font-size:15px;line-height:1.4;color:#000;font-weight:700;display:inline-block;vertical-align:middle}.saswp-str-rtng .saswp-rvw-str{display:inline-block;vertical-align:middle;padding-left:10px;width:auto}.saswp-rv-cnt p{font-size:16px;line-height:1.6;color:#000;margin:10px 0 0 0}.saswp-rv-img img{max-width:100px;border-radius:100%}.saswp-premium_features table th,.saswp-services table th{width:auto;padding:0}.saswp-features-blocks{display:inline-grid;grid-template-columns:1fr 1fr;grid-gap:20px}.saswp-features-blocks li{background:#fff;padding:25px;border:1px solid #d8d8d8}.saswp-features-blocks li a{text-decoration:none}.saswp-ele-ic{border-radius:256px;display:inline-block;padding:8px 10px 8px 10px;width:70px;margin-right:20px;height:70px;float:left}.saswp-ele-ic img{width:80%;left:10%;position:relative;top:9%}.saswp-ele-1{background:#96588a}.saswp-ele-2{background:#00a97e}.saswp-ele-3{background:#cacaca}.saswp-ele-4{background:#9c56cc}.saswp-ele-tlt h3{margin:0;font-size:18px;line-height:1.4}.saswp-ele-tlt p{margin-top:10px}.saswp-sts-btn{box-sizing:border-box;height:52px;margin-top:20px;padding:6px 15px;border:1px solid #e5e5e5;border-radius:3px;display:flex;align-items:center;justify-content:space-between}.saswp-d-btn{background:#d2150a;padding:6px 18px;border-radius:30px;font-size:14px;color:#fff}.form-wrap .saswp-sts-txt{font-size:16px;color:#000}.saswp-sts-txt span{color:#bebfc0;padding-left:5px}.saswp_review_platform .saswp-g-plus{float:left}.saswp-pc-wrap{background-color:#004f74;padding:15px 15px 15px 30px;color:#fff;display:inline-flex;width:100%;flex-wrap:wrap;margin-bottom:20px}.saswp-pc-wrap .saswp-lst span{font-size:18px;font-weight:500;margin-bottom:10px;display:inline-block;line-height:1.3}.saswp-pc-wrap .saswp-lst{flex:1 0 42%}.saswp-pc-wrap .saswp-lst ul{margin:0}.saswp-pc-wrap .saswp-lst p{list-style-type:none;font-size:15px;font-weight:lighter;line-height:1.2;margin-bottom:10px;position:relative;padding-left:20px;color:#eee}.saswp-pc-wrap .saswp-lst p:before{content:'';position:absolute;width:8px;height:8px;background-color:#ccc;left:0;top:6px;border-radius:10px}.sgl .saswp-rvw{width:100%;margin-bottom:34px;font-size:13px;border-bottom:1px solid #ededed}.saswp-rvw-hd span,.saswp-rvw-sm span{background-color:#222;color:#fff;display:inline-block;font-size:15px}.saswp-rvw-hd span{line-height:1.4;padding:8px 12px 6px;margin:26px 0}.saswp-rvw td{padding:7px 14px}.saswp-rvw td,.sgl table td{border:1px solid #ededed}.saswp-rvw tbody{width:100%}.saswp-rvw-sm span{padding:8px 12px 6px;margin-bottom:13px;position:relative;line-height:1.2}.saswp-rvw-fs{line-height:1.5;font-size:48px;font-weight:600;margin-bottom:5px}.saswp-rvw-ov .ovs{font-size:11px;font-weight:600}.sgl .saswp-rvw tr td{background:#fff;width:100%}.sgl .saswp-rvw tr:hover td{background-color:#fcfcfc}.saswp-rvw .saswp-rvw-sm{padding:21px 14px}.str-ic{font-size:18px;line-height:1.2}.saswp-rvw-str{display:inline-flex;width:100%}.saswp-rvw-str .df-clr,.saswp-rvw-str .half-str,.saswp-rvw-str .str-ic{display:inline-block;width:20px;height:16px;background-repeat:no-repeat}.saswp-rvw-ov{text-align:center}.saswp-rvw-str .half-str{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cGF0aCBkPSJNNDgyLjIwNywxODYuOTczbC0xNTkuNjk5LTMzLjcwNUwyNDEuMTA0LDExLjgwM2wtODEuNDA0LDE0MS40NjVMMCwxODYuOTczbDEwOS4zODgsMTIxLjEzNEw5Mi4wOTQsNDcwLjQwNGwxNDkuMDEtNjYuNiAgbDE0OS4wMSw2Ni42bC0xNy4yOTQtMTYyLjI5Nkw0ODIuMjA3LDE4Ni45NzN6IE0yNDEuMTA0LDM3MC45NDNWNzEuOTUzbDYyLjA5LDEwNy45TDQyNSwyMDUuNTYxbC04My40MzMsOTIuMzkzbDEzLjE5MSwxMjMuNzg4ICBMMjQxLjEwNCwzNzAuOTQzeiIgZmlsbD0iI2ZmZDcwMCIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)}.saswp-rvw-str .str-ic{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cG9seWdvbiBwb2ludHM9IjQ4Mi4yMDcsMTg2Ljk3MyAzMjIuNTA4LDE1My4yNjkgMjQxLjEwNCwxMS44MDMgMTU5LjY5OSwxNTMuMjY5IDAsMTg2Ljk3MyAxMDkuMzg4LDMwOC4xMDggOTIuMDk0LDQ3MC40MDQgICAyNDEuMTA0LDQwMy44MDMgMzkwLjExMyw0NzAuNDA0IDM3Mi44MTgsMzA4LjEwOCAiIGZpbGw9IiNmZmQ3MDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}.saswp-rvw-str .df-clr{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cG9seWdvbiBwb2ludHM9IjQ4Mi4yMDcsMTg2Ljk3MyAzMjIuNTA4LDE1My4yNjkgMjQxLjEwNCwxMS44MDMgMTU5LjY5OSwxNTMuMjY5IDAsMTg2Ljk3MyAxMDkuMzg4LDMwOC4xMDggOTIuMDk0LDQ3MC40MDQgICAyNDEuMTA0LDQwMy44MDMgMzkwLjExMyw0NzAuNDA0IDM3Mi44MTgsMzA4LjEwOCAiIGZpbGw9IiM2MzVlNjMiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}.saswp-g-review-header{margin-top:50px}.saswp-g-review-body{display:inline-grid;grid-template-columns:1fr 300px;grid-gap:30px;margin-top:30px;width:100%}.saswp-channel-list{margin-right:15px}.saswp-input-fields{display:inline-flex;align-items:center;margin-bottom:8px;width:100%}.saswp-input-fields label{width:130px}.saswp-panel h3{font-size:20px;line-height:1.4;color:#222;text-align:center;margin:10px 0 20px 0}.saswp-input-fields a.button-primary{margin-top:10px}.saswp-glg-review-body{display:grid;grid-template-columns:100px 1fr;grid-gap:20px;background:#fff;padding:20px;box-shadow:0 0 20px 1px #d2cccc;margin-bottom:30px}.saswp-g-plus{float:right;font-size:15px;width:20px;height:20px}.saswp-g-plus img{max-width:100%}.saswp-rtng{padding-left:5px;font-size:14px}.saswp-pt-dt{font-size:12px;color:#999;font-weight:600;margin-top:5px;display:inline-block}.saswp-athr{font-size:15px;line-height:1.4;color:#000;font-weight:700}.saswp-rv-cnt p{font-size:16px;line-height:1.6;color:#000;margin:10px 0 0 0}.saswp-rv-img img{max-width:100px}.saswp-g-review-header div{margin-top:10px}.saswp-upgrade-pro{background:#fff;padding:25px;border:1px solid #d8d8d8;display:inline-block;margin-top:10px;width:81%}.saswp-upgrade-pro h2{font-size:20px;margin:0;color:#23282d;font-weight:600;text-align:center}.saswp-upgrade-pro ul{margin:25px 0 20px 0;display:inline-block}.saswp-upgrade-pro ul li{position:relative;padding-left:30px;font-size:14px;line-height:1.4;margin-bottom:10px}.saswp-upgrade-pro ul li:before{content:"";background-image:url(../images/check.png);background-repeat:no-repeat;background-size:20px;width:20px;height:20px;position:absolute;left:2px;top:2px}.saswp-upgrade-pro a{background:#d2150a;padding:10px 0;display:block;text-align:center;color:#fff;text-decoration:none;font-size:16px;font-weight:600;letter-spacing:1px;border-radius:5px}.saswp_image_prev{max-width:200px;max-height:200px;float:left;padding-left:2px}.saswp_prev_close{position:relative;width:30px;height:30px;top:12px;font-size:20px;top:-5px;text-decoration:none}.saswp-add-custom-schema-div{margin-top:10px;border-top:1px solid #eee;padding-top:5px}.saswp-nav-menu-list label{padding-left:10px}.saswp-dynamic-properties{border:1px solid #aaa;margin-top:5px;margin-bottom:5px}.saswp-table-close{float:right;cursor:pointer}.saswp-table-create-onajax table td,.saswp-table-create-onajax table th{padding:5px}.saswp-table-create-onajax select{width:98%}.saswp-g-reviews-settings-table input{width:100%}.saswp-s-reviews-settings-table input{width:100%}.saswp_rv_module_pro_notice{border:1px solid #d8d8d8;background:#fff}.saswp-settings-list .saswp-rev-mod{width:100%;display:inline-block;margin-top:20px}.saswp-rev-mod .saswp-knowledge-label{width:100%;display:inline-block;padding:10px 16px;font-weight:600;font-size:16px;color:#333;background:#f9f9f9;border:1px solid #d8d8d8;border-bottom:none;box-sizing:border-box}.saswp-rev-mod .saswp-knowledge-field{width:100%;display:inline-block}.saswp-rev-mod .saswp_rv_module_pro_notice{padding:20px}.saswp_cmpny_lst{width:100%;display:inline-block;margin-top:30px}.saswp_rv_module_pro_notice ul{margin:15px 0 20px 0;width:100%;display:inline-grid;grid-template-columns:1fr 1fr 1fr;grid-gap:20px;border-bottom:1px solid #eee;padding-bottom:20px}.saswp_rv_module_pro_notice ul li{position:relative;font-size:15px;line-height:1.5;color:#444;margin:0}.saswp_rv_module_pro_notice ul li span{padding-left:3px}.saswp_rv_module_pro_notice h2{text-align:center;font-size:31px}.saswp_rv_module_pro_notice .saswp_desc{text-align:center;font-size:18px;font-style:normal;color:#000}.saswp_rv_module_pro_notice .saswp_desc a{font-style:italic}.saswp_rv_module_pro_notice .saswp_lst{color:grey;font-family:georgia;font-style:italic;font-style:italic;font-size:15px;font-weight:600}.saswp_rv_module_pro_notice .saswp_avlbl{color:#2a902e;font-family:georgia;font-style:italic;font-size:15px;font-weight:600}.saswp_rv_module_pro_notice ul li img{width:20px;height:20px;position:relative;top:4px}.saswp-rev-btn{width:100%;display:inline-block;margin-top:20px;text-align:center}.saswp-rev-btn span{display:block;font-size:13px;margin-bottom:15px}.saswp-rev-btn a{padding:12px 18px;display:inline-block;text-decoration:none;border-radius:5px;background:#0085ba;color:#fff;font-weight:600;font-size:18px}.select2-container{width:100%!important}.saswp-schema-modify-section{margin-top:15px;border-top:1px solid #eee;padding-top:15px}.saswp-custom-meta-list{border:1px solid #aaa;border-radius:4px}.saswp-custom-fields-table tr td:nth-child(3n+3) input{border:1px solid #aaa;border-radius:4px}.updated.notice p{display:flex;width:100%;align-items:center}.updated.notice .dashicons-thumbs-up{margin-right:10px}a.saswp-feedback-no-thanks,a.saswp-feedback-remindme{display:inline-block;cursor:pointer}.saswp-feedback-remindme:after{content:",";display:inline-block;margin-right:5px;padding-left:5px}a.saswp-revws-lnk{display:inline-block;background:#0085ba;padding:12px 20px;color:#fff;text-decoration:none;border-radius:3px;margin-left:20px;font-size:14px;line-height:.6}.saswp-update-notice-btns{display:inline-block;width:100%;margin-bottom:5px}.saswp-about-contact-page{width:75%;float:right}.saswp-about-contact-page-tooltip{float:left;clear:both}.saswp-quick-setup{float:left}.saswp_add_schema_fields_on_fly{margin-bottom:5px!important}.saswp-custom-fields-table .saswp_image_prev{max-width:62px!important}.saswp-custom-fields-table .saswp_prev_close{font-size:15px}.saswp-review-content-table td:nth-child(2){width:50%;float:left}.saswp-review-content-table input{width:100%}.saswp-review-content-table select{width:100%}.saswp-review-content-table textarea{width:100%}.saswp-social-links-table{width:100%}.saswp-social-links-table input{width:100%}.saswp-add-social-links{margin:3px!important}.saswp-social-links-table td{padding-left:0!important}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.saswp_warning{color:#ef6c00!important}.saswp_hide{display:none}.saswp-general table th{width:auto;font-weight:600;padding:0}.saswp-general table{margin-top:0}.saswp-general table td{padding:5px}.saswp-knowledge table th{width:auto;padding:0}.saswp-knowledge table{margin-top:0}.saswp-knowledge table td{padding:5px}.saswp-schema table th{width:auto;padding:0}.saswp-schema table{margin-top:0}.saswp-schema table td{padding:5px}.saswp-amp table th{width:auto;padding:0}.saswp-amp table{margin-top:0}.saswp-amp table td{padding:5px}.saswp-help table th{width:auto;padding:0}.saswp-support table th{width:auto;padding:0}.saswp-review table th{width:auto;padding:0}.saswp-help table{margin-top:0}.saswp-help table td{padding:5px}.saswp-settings-list{display:inline-block;width:100%}.saswp-settings-list li{padding-left:0}.saswp-settings-list li div label{font-weight:600}.saswp-general h2{margin-bottom:0}.saswp-knowledge h2{margin-bottom:0}.saswp-schema h2{margin-bottom:0}.saswp-help h2{margin-bottom:0}.saswp-settings-form p.submit{margin-top:0}.saswp_qanda_p{font-weight:500}.saswp-display-none{display:none!important}.saswp-placement-groups{border:1px solid #e5e5e5}.saswp-query-success{color:#060}.saswp-query-error{color:#bf3322}.saswp-tools table th{width:auto;padding:0}.saswp-tools table{margin-top:0}.saswp-tools table td{padding:5px}.saswp-tools-field-title strong{padding-right:130px}.saswp-tools .saswp-tooltip{width:230px}.saswp-tools .saswp-knowledge-label{float:left}.saswp-error{color:red!important}.saswp-tooltip{position:relative;display:inline-block}.saswp-tooltip .saswp-tooltiptext{visibility:hidden;width:200px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1;bottom:100%;left:50%;margin-left:-25px}.saswp-tooltiptext::after{content:"";position:absolute;top:100%;left:10%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent transparent}.saswp-knowledge-base .saswp-knowledge-label{width:200px;float:left;clear:both}.saswp-knowledge-base .saswp-knowledge-field{width:75%;float:right}.saswp-social-fileds ul{display:grid;grid-template-columns:26.5% 1fr}.saswp-social-fileds li{display:flex}.saswp-social-fileds .saswp-knowledge-field{width:100%;margin-left:10px}.saswp-social-fileds .saswp-knowledge-field input{float:right;margin:inherit}.saswp-schema-type-fields .saswp-knowledge-label{width:200px;float:left;clear:both}.saswp-schema-type-fields .saswp-knowledge-field{width:75%;float:right}.saswp-settings-first-div{width:92%}.saswp-settings-container{display:inline-flex;width:100%}.saswp-settings-second-div{float:right;position:relative;top:20px;margin-right:30px;margin-top:37px}.saswp-feedback-panel{height:200px;width:280px;background:#fff;position:relative}.saswp-start-quck-setup{position:relative;float:inherit;top:7px;left:15px}.saswp-feedback-panel ul{list-style-type:circle;list-style:decimal;padding-left:30px;font-size:15px}.saswp-feedback-panel a{text-decoration:none}.saswp-feedback-panel h2{text-align:center;padding-top:18px}.saswp-social-sharing-buttons{text-align:center;padding-top:20px}.saswp-facebook-share{background:#3b5998;box-shadow:0 0 0 #1b95e0!important;color:#fff!important;line-height:20px!important;height:21px!important;border-radius:3px;margin-right:5px}.saswp-social-sharing-buttons a{text-align:center;padding:8px}.twitter-share-button{background:#1b95e0!important;box-shadow:0 0 0 #1b95e0!important;color:#fff!important;line-height:20px!important;height:21px!important;border-radius:3px;margin-left:5px}.saswp-placement-button{padding:3px 10px;color:#0d0d0d;font-size:14px;border:1px solid #aaa;border-radius:2px;background:linear-gradient(#ededed,#fff)}.saswp-placement-table td{padding:5px 10px!important}.saswp-archive-div .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-archive-div .saswp-knowledge-label{float:left;clear:both}.saswp-amp .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-amp .saswp-knowledge-label{float:left;clear:both}.saswp-review .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-review .saswp-knowledge-label{float:left;clear:both}.saswp-compativility-div .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-compativility-div .saswp-knowledge-label{float:left;clear:both}.saswp-compativility-div li{display:inline-flex}.saswp-seller-div .saswp-knowledge-label{float:left;clear:both}.saswp-seller-div .saswp-knowledge-field{float:left;width:70%}.saswp-post-specific-tab-wrapper{display:inline-block;width:25%;vertical-align:top;box-sizing:border-box;padding-right:10px}.saswp-post-specific-container{display:inline-block;width:calc(75% - 1px);border-left:1px solid #eee}.saswp-post-specific-wrapper{padding:10px}.saswp-tab a.selected{background-color:#ccc}.saswp-tab-links{display:block;background-color:inherit;color:#000;padding:6px 10px;outline:0;text-align:left;cursor:pointer;transition:.3s;font-size:15px;width:130px;overflow:hidden;margin-right:10px}.saswp-star-rating{cursor:pointer}.saswp-post-specific-wrapper select{width:100%}.saswp-review-tables{width:100%}.saswp-over-all-raring{float:right}.saswp-review-pros-and-cons{position:relative;clear:both}.saswp-review-pros-and-cons>div:first{padding-left:10px}.saswp-review-pros-and-cons>div{width:49%;display:inline-block}.saswp-review-pros-and-cons>div:nth-child(2){padding-left:12px}.saswp-wp-ediot-desc{margin-bottom:-23px;display:block}.saswp-review-description{margin-top:40px;padding-top:10px;border-top:1px solid #eee}.saswp-review-pros-and-cons{margin-top:40px;padding-top:10px;border-top:1px solid #eee}.saspw-review-item-list{margin-top:20px;border-top:1px solid #eee}.saswp-review-item-list-table{padding-bottom:10px}#sasw-review input[type=text]{width:180px}#sasw-review input[type=number]{width:180px}#saswp-review-item-enable{width:10px}.saswp-enable-review-on-post{padding-bottom:10px}.saswp-enable-review-on-post label{font-weight:500}.saswp-compatibility table th{width:auto;padding:0}.saswp-compatibility .saswp-knowledge-label{float:left;clear:both}.saswp-tools .saswp-knowledge-label{float:left;clear:both}.saswp-tools .saswp-knowledge-field{float:right;width:69%;padding-bottom:10px}.saswp_kg_logo,.saswp_person_fields{background-color:#fff!important}.saswp_image_thumbnail{padding-top:5px;display:inline-block}.saswp-compatibility .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-job-posting-note,.saswp-schem-type-note{color:#d2691e}.saswp-custom-fields-name{border:1px solid #aaa;border-radius:4px}.saswp-option-table-class p{margin:auto;font-style:italic;color:#666}.saswp-switch{position:relative;display:inline-block;width:40px;height:22px;border:20px}.saswp-switch input{opacity:0;width:0;height:0}.saswp-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#5a6783;transition:.4s;border-radius:20px}.saswp-slider:before{position:absolute;content:"";height:15px;width:15px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:20px}input:checked+.saswp-slider{background-color:#61bd3b;border-radius:30px}input:focus+.saswp-slider{box-shadow:0 0 1px #2196f3}input:checked+.saswp-slider:before{transform:translateX(15px)}.saswp-slider.saswp-round{border-radius:34px}.saswp-slider.saswp-round:before{border-radius:50%}.saswp-tab-nav li{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;border-bottom:1px solid #eee}.saswp-tab-nav .selected{background-color:#ccc}.saswp-single-post-restore .saswp-switch{height:28px}.saswp-single-post-restore .saswp-slider:before{height:20px}.option-table-class{width:100%}.option-table-class tr td{padding:10px 10px 10px 10px}.option-table-class tr>td{width:30%}.option-table-class tr td:last-child{width:60%}.saswp-custom-fields-table{width:100%}.saswp-custom-fields-table input{width:100%}.saswp-custom-fields-table tr td{padding:10px 10px 10px 10px}.saswp-custom-fields-table td{width:30%;vertical-align:top}.saswp-option-table-class input[type=text],.saswp-option-table-class select{width:100%}.saswp-paywall-table-class input[type=text],.saswp-paywall-table-class select{width:100%}.saswp-email_schema table th{width:auto;padding:0}.saswp-email_schema .saswp-knowledge-label{float:left;clear:both}.saswp-email_schema .saswp-knowledge-field{float:right;width:75%;padding-bottom:10px}.saswp-add-on-plugin label{margin-top:10px}.saswp-add-on-plugin span{width:250px;display:inline-block}.saswp-knowledge-label label[for=saswp_search_box_schema_checkbox]{padding-left:10px}.saswp-knowledge-label label[for=saswp-woocommerce-booking-checkbox]{padding-left:10px}.saswp-knowledge-label label[for=saswp-woocommerce-membership-checkbox]{padding-left:10px}.saswp-global-selected{color:#000;font-weight:500}#saswp-global-tabs a{cursor:pointer}#saswp-global-tabs{padding-left:5px}#saswp-tools-tabs a{cursor:pointer}#saswp-review-tabs a{cursor:pointer}#saswp-tools-tabs{padding-left:5px}.saswp-need-help{padding-left:60px}.saswp-heading{display:inline-flex;align-items:baseline}.saswp-heading h2{margin-bottom:0}.saswp-view-docs a{margin-right:5px!important;margin-top:10px!important;float:right}.saswp-tabs .nav-tab{margin-left:4px}.saswp-panel{padding:7px 18px;background-color:#fff;box-shadow:0 0 20px 1px #d2cccc}.saswp-g-review-header{margin-top:50px}.saswp-g-review-body{display:inline-grid;grid-template-columns:1fr 300px;grid-gap:30px;margin-top:30px}.saswp-channel-list{margin-right:15px}.saswp-input-fields{display:inline-flex;align-items:center;margin-bottom:8px;width:100%}.saswp-input-fields label{width:130px}.saswp-input-fields select{width:100%}.saswp-panel h3{font-size:20px;line-height:1.4;color:#222;text-align:center;margin:10px 0 20px 0}.saswp-input-fields a.button-primary{margin-top:10px}.saswp-glg-review-body{display:grid;grid-template-columns:100px 1fr;grid-gap:20px;background:#fff;padding:20px;box-shadow:0 0 20px 1px #d2cccc;margin-bottom:30px}.saswp-g-plus{float:right;font-size:15px}.saswp-rtng{padding-left:5px;font-size:14px}.saswp-pt-dt{font-size:12px;color:#999;font-weight:600;margin-top:5px;display:inline-block}.saswp-str{display:inline-block;width:100%;vertical-align:middle}.saswp-athr{font-size:15px;line-height:1.4;color:#000;font-weight:700;display:inline-block;vertical-align:middle}.saswp-str-rtng .saswp-rvw-str{display:inline-block;vertical-align:middle;padding-left:10px;width:auto}.saswp-rv-cnt p{font-size:16px;line-height:1.6;color:#000;margin:10px 0 0 0}.saswp-rv-img img{max-width:100px;border-radius:100%}.saswp-premium_features table th,.saswp-services table th{width:auto;padding:0}.saswp-features-blocks{display:inline-grid;grid-template-columns:1fr 1fr;grid-gap:20px}.saswp-features-blocks li{background:#fff;padding:25px;border:1px solid #d8d8d8}.saswp-features-blocks li a{text-decoration:none}.saswp-ele-ic{border-radius:256px;display:inline-block;padding:8px 10px 8px 10px;width:70px;margin-right:20px;height:70px;float:left}.saswp-ele-ic img{width:80%;left:10%;position:relative;top:9%}.saswp-ele-1{background:#96588a}.saswp-ele-2{background:#00a97e}.saswp-ele-3{background:#cacaca}.saswp-ele-4{background:#9c56cc}.saswp-ele-tlt h3{margin:0;font-size:18px;line-height:1.4}.saswp-ele-tlt p{margin-top:10px}.saswp-sts-btn{box-sizing:border-box;height:52px;margin-top:20px;padding:6px 15px;border:1px solid #e5e5e5;border-radius:3px;display:flex;align-items:center;justify-content:space-between}.saswp-d-btn{background:#d2150a;padding:6px 18px;border-radius:30px;font-size:14px;color:#fff}.form-wrap .saswp-sts-txt{font-size:16px;color:#000}.saswp-sts-txt span{color:#bebfc0;padding-left:5px}.saswp_review_platform .saswp-g-plus{float:left}.saswp-pc-wrap{background-color:#004f74;padding:15px 15px 15px 30px;color:#fff;display:inline-flex;width:100%;flex-wrap:wrap;margin-bottom:20px}.saswp-pc-wrap .saswp-lst span{font-size:18px;font-weight:500;margin-bottom:10px;display:inline-block;line-height:1.3}.saswp-pc-wrap .saswp-lst{flex:1 0 42%}.saswp-pc-wrap .saswp-lst ul{margin:0}.saswp-pc-wrap .saswp-lst p{list-style-type:none;font-size:15px;font-weight:lighter;line-height:1.2;margin-bottom:10px;position:relative;padding-left:20px;color:#eee}.saswp-pc-wrap .saswp-lst p:before{content:'';position:absolute;width:8px;height:8px;background-color:#ccc;left:0;top:6px;border-radius:10px}.sgl .saswp-rvw{width:100%;margin-bottom:34px;font-size:13px;border-bottom:1px solid #ededed}.saswp-rvw-hd span,.saswp-rvw-sm span{background-color:#222;color:#fff;display:inline-block;font-size:15px}.saswp-rvw-hd span{line-height:1.4;padding:8px 12px 6px;margin:26px 0}.saswp-rvw td{padding:7px 14px}.saswp-rvw td,.sgl table td{border:1px solid #ededed}.saswp-rvw tbody{width:100%}.saswp-rvw-sm span{padding:8px 12px 6px;margin-bottom:13px;position:relative;line-height:1.2}.saswp-rvw-fs{line-height:1.5;font-size:48px;font-weight:600;margin-bottom:5px}.saswp-rvw-ov .ovs{font-size:11px;font-weight:600}.sgl .saswp-rvw tr td{background:#fff;width:100%}.sgl .saswp-rvw tr:hover td{background-color:#fcfcfc}.saswp-rvw .saswp-rvw-sm{padding:21px 14px}.str-ic{font-size:18px;line-height:1.2}.saswp-rvw-str{display:inline-flex;width:100%}.saswp-rvw-str .df-clr,.saswp-rvw-str .half-str,.saswp-rvw-str .str-ic{display:inline-block;width:20px;height:16px;background-repeat:no-repeat}.saswp-rvw-ov{text-align:center}.saswp-rvw-str .half-str{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cGF0aCBkPSJNNDgyLjIwNywxODYuOTczbC0xNTkuNjk5LTMzLjcwNUwyNDEuMTA0LDExLjgwM2wtODEuNDA0LDE0MS40NjVMMCwxODYuOTczbDEwOS4zODgsMTIxLjEzNEw5Mi4wOTQsNDcwLjQwNGwxNDkuMDEtNjYuNiAgbDE0OS4wMSw2Ni42bC0xNy4yOTQtMTYyLjI5Nkw0ODIuMjA3LDE4Ni45NzN6IE0yNDEuMTA0LDM3MC45NDNWNzEuOTUzbDYyLjA5LDEwNy45TDQyNSwyMDUuNTYxbC04My40MzMsOTIuMzkzbDEzLjE5MSwxMjMuNzg4ICBMMjQxLjEwNCwzNzAuOTQzeiIgZmlsbD0iI2ZmZDcwMCIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K)}.saswp-rvw-str .str-ic{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cG9seWdvbiBwb2ludHM9IjQ4Mi4yMDcsMTg2Ljk3MyAzMjIuNTA4LDE1My4yNjkgMjQxLjEwNCwxMS44MDMgMTU5LjY5OSwxNTMuMjY5IDAsMTg2Ljk3MyAxMDkuMzg4LDMwOC4xMDggOTIuMDk0LDQ3MC40MDQgICAyNDEuMTA0LDQwMy44MDMgMzkwLjExMyw0NzAuNDA0IDM3Mi44MTgsMzA4LjEwOCAiIGZpbGw9IiNmZmQ3MDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}.saswp-rvw-str .df-clr{background-image:url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0ODIuMjA3IDQ4Mi4yMDciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4Mi4yMDcgNDgyLjIwNzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8cG9seWdvbiBwb2ludHM9IjQ4Mi4yMDcsMTg2Ljk3MyAzMjIuNTA4LDE1My4yNjkgMjQxLjEwNCwxMS44MDMgMTU5LjY5OSwxNTMuMjY5IDAsMTg2Ljk3MyAxMDkuMzg4LDMwOC4xMDggOTIuMDk0LDQ3MC40MDQgICAyNDEuMTA0LDQwMy44MDMgMzkwLjExMyw0NzAuNDA0IDM3Mi44MTgsMzA4LjEwOCAiIGZpbGw9IiM2MzVlNjMiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)}.saswp-g-review-header{margin-top:50px}.saswp-g-review-body{display:inline-grid;grid-template-columns:1fr 300px;grid-gap:30px;margin-top:30px;width:100%}.saswp-channel-list{margin-right:15px}.saswp-input-fields{display:inline-flex;align-items:center;margin-bottom:8px;width:100%}.saswp-input-fields label{width:130px}.saswp-panel h3{font-size:20px;line-height:1.4;color:#222;text-align:center;margin:10px 0 20px 0}.saswp-input-fields a.button-primary{margin-top:10px}.saswp-glg-review-body{display:grid;grid-template-columns:100px 1fr;grid-gap:20px;background:#fff;padding:20px;box-shadow:0 0 20px 1px #d2cccc;margin-bottom:30px}.saswp-g-plus{float:right;font-size:15px;width:20px;height:20px}.saswp-g-plus img{max-width:100%}.saswp-rtng{padding-left:5px;font-size:14px}.saswp-pt-dt{font-size:12px;color:#999;font-weight:600;margin-top:5px;display:inline-block}.saswp-athr{font-size:15px;line-height:1.4;color:#000;font-weight:700}.saswp-rv-cnt p{font-size:16px;line-height:1.6;color:#000;margin:10px 0 0 0}.saswp-rv-img img{max-width:100px}.saswp-g-review-header div{margin-top:10px}.saswp-upgrade-pro{background:#fff;padding:25px;border:1px solid #d8d8d8;display:inline-block;margin-top:10px;width:81%}.saswp-upgrade-pro h2{font-size:20px;margin:0;color:#23282d;font-weight:600;text-align:center}.saswp-upgrade-pro ul{margin:25px 0 20px 0;display:inline-block}.saswp-upgrade-pro ul li{position:relative;padding-left:30px;font-size:15px;line-height:1.4;margin-bottom:10px}.saswp-upgrade-pro a{background:#d2150a;padding:10px 0;display:block;text-align:center;color:#fff;text-decoration:none;font-size:16px;font-weight:600;letter-spacing:1px;border-radius:5px}.saswp_image_prev{max-width:200px;max-height:200px;float:left;padding-left:2px}.saswp_prev_close{position:relative;width:30px;height:30px;top:12px;font-size:20px;top:-5px;text-decoration:none}.saswp-add-custom-schema-div{margin-top:10px;border-top:1px solid #eee;padding-top:5px}.saswp-nav-menu-list label{padding-left:10px}.saswp-dynamic-properties{border:1px solid #aaa;margin-top:5px;margin-bottom:5px}.saswp-table-close{float:right;cursor:pointer}.saswp-table-create-onajax table td,.saswp-table-create-onajax table th{padding:5px}.saswp-table-create-onajax select{width:98%}.saswp-g-reviews-settings-table input{width:100%}.saswp-s-reviews-settings-table input{width:100%}.saswp_rv_module_pro_notice{border:1px solid #d8d8d8;background:#fff}.saswp-settings-list .saswp-rev-mod{width:100%;display:inline-block;margin-top:20px}.saswp-rev-mod .saswp-knowledge-label{width:100%;display:inline-block;padding:10px 16px;font-weight:600;font-size:16px;color:#333;background:#f9f9f9;border:1px solid #d8d8d8;border-bottom:none;box-sizing:border-box}.saswp-rev-mod .saswp-knowledge-field{width:100%;display:inline-block}.saswp-rev-mod .saswp_rv_module_pro_notice{padding:20px}.saswp_cmpny_lst{width:100%;display:inline-block;margin-top:30px}.saswp_rv_module_pro_notice ul{margin:15px 0 20px 0;width:100%;display:inline-grid;grid-template-columns:1fr 1fr 1fr;grid-gap:20px;border-bottom:1px solid #eee;padding-bottom:20px}.saswp_rv_module_pro_notice ul li{position:relative;font-size:15px;line-height:1.5;color:#444;margin:0}.saswp_rv_module_pro_notice ul li span{padding-left:3px}.saswp_rv_module_pro_notice h2{text-align:center;font-size:31px}.saswp_rv_module_pro_notice .saswp_desc{text-align:center;font-size:18px;font-style:normal;color:#000}.saswp_rv_module_pro_notice .saswp_desc a{font-style:italic}.saswp_rv_module_pro_notice .saswp_lst{color:grey;font-family:georgia;font-style:italic;font-style:italic;font-size:15px;font-weight:600}.saswp_rv_module_pro_notice .saswp_avlbl{color:#2a902e;font-family:georgia;font-style:italic;font-size:15px;font-weight:600}.saswp_rv_module_pro_notice ul li img{width:20px;height:20px;position:relative;top:4px}.saswp-rev-btn{width:100%;display:inline-block;margin-top:20px;text-align:center}.saswp-rev-btn span{display:block;font-size:13px;margin-bottom:15px}.saswp-rev-btn a{padding:12px 18px;display:inline-block;text-decoration:none;border-radius:5px;background:#0085ba;color:#fff;font-weight:600;font-size:18px}.select2-container{width:100%!important}.saswp-schema-modify-section{margin-top:15px;border-top:1px solid #eee;padding-top:15px}.saswp-custom-meta-list{border:1px solid #aaa;border-radius:4px}.saswp-custom-fields-table tr td:nth-child(3n+3) input{border:1px solid #aaa;border-radius:4px}.updated.notice p{display:flex;width:100%;align-items:center}.updated.notice .dashicons-thumbs-up{margin-right:10px}a.saswp-feedback-no-thanks,a.saswp-feedback-remindme{display:inline-block;cursor:pointer}.saswp-feedback-remindme:after{content:",";display:inline-block;margin-right:5px;padding-left:5px}a.saswp-revws-lnk{display:inline-block;background:#0085ba;padding:12px 20px;color:#fff;text-decoration:none;border-radius:3px;margin-left:20px;font-size:14px;line-height:.6}.saswp-update-notice-btns{display:inline-block;width:100%;margin-bottom:5px}.saswp-about-contact-page{width:75%;float:right}.saswp-about-contact-page-tooltip{float:left;clear:both}.saswp-quick-setup{float:left}.saswp_add_schema_fields_on_fly{margin-bottom:5px!important}.saswp-custom-fields-table .saswp_image_prev{max-width:62px!important}.saswp-custom-fields-table .saswp_prev_close{font-size:15px}.saswp-review-content-table td:nth-child(2){width:50%;float:left}.saswp-review-content-table input{width:100%}.saswp-review-content-table select{width:100%}.saswp-review-content-table textarea{width:100%}.saswp-social-links-table{width:100%}.saswp-social-links-table input{width:100%}.saswp-add-social-links{margin:3px!important}.saswp-social-links-table td{padding-left:0!important}
|
2 |
+
|
3 |
+
/** Coupon Code CSS **/
|
4 |
+
.saswp-hide{
|
5 |
+
display:none;
|
6 |
+
}
|
7 |
+
.saswp-settings-second-div .saswp-upgrade-pro.promo-cpn{
|
8 |
+
display: block;
|
9 |
+
margin: 0;
|
10 |
+
}
|
11 |
+
.saswp-upgrade-pro.promo-cpn{
|
12 |
+
border: 1px solid #558B2F;
|
13 |
+
border-radius: 8px;
|
14 |
+
}
|
15 |
+
.saswp-upgrade-pro.promo-cpn h2{
|
16 |
+
color: #2E7D32;
|
17 |
+
font-size: 24px;
|
18 |
+
text-align: center;
|
19 |
+
margin: 0px 0px 20px 0px;
|
20 |
+
}
|
21 |
+
.saswp-upgrade-pro.promo-cpn span {
|
22 |
+
text-align: center;
|
23 |
+
font-size: 14px;
|
24 |
+
display: inline-block;
|
25 |
+
color: #777;
|
26 |
+
padding: 0px 20px;
|
27 |
+
box-sizing: border-box;
|
28 |
+
line-height: 1.4;
|
29 |
+
font-weight: 400;
|
30 |
+
}
|
31 |
+
.saswp-promo {
|
32 |
+
font-size: 20px;
|
33 |
+
margin-top: 15px;
|
34 |
+
width: 100%;
|
35 |
+
text-align: center;
|
36 |
+
}
|
37 |
+
.saswp-upgrade-pro.promo-cpn .prm-txt {
|
38 |
+
display: block;
|
39 |
+
line-height: 1;
|
40 |
+
}
|
41 |
+
.saswp-upgrade-pro.promo-cpn .saswp-promo .prm-cpn {
|
42 |
+
border: 1px dashed #1B5E20;
|
43 |
+
border-radius: 100px;
|
44 |
+
margin-top: 5px;
|
45 |
+
color: #388E3C;
|
46 |
+
font-size: 20px;
|
47 |
+
padding: 2px 15px 2px 15px;
|
48 |
+
}
|
49 |
+
.saswp-upgrade-pro a{
|
50 |
+
background:#43A047;
|
51 |
+
}
|
52 |
+
.saswp-upgrade-pro{border-radius: 8px;}
|
53 |
+
.saswp-settings-second-div a{
|
54 |
+
text-decoration: none;
|
55 |
+
}
|
56 |
+
.saswp-upgrade-pro ul li:before{
|
57 |
+
content: "\f147";
|
58 |
+
background-repeat: no-repeat;
|
59 |
+
font-family: dashicons;
|
60 |
+
position: absolute;
|
61 |
+
color: #46b450;
|
62 |
+
font-size: 25px;
|
63 |
+
left: 0px;
|
64 |
+
line-height: 1;
|
65 |
+
top: 0px;
|
66 |
+
}
|
admin_section/images/reviews_platform_icon/booking-img.png
ADDED
Binary file
|
admin_section/images/reviews_platform_icon/cars-img.png
ADDED
Binary file
|
admin_section/images/reviews_platform_icon/hotels-img.png
ADDED
Binary file
|
admin_section/images/reviews_platform_icon/lawyers-img.png
ADDED
Binary file
|
admin_section/js/saswp-newsletter.js
ADDED
File without changes
|
admin_section/settings.php
CHANGED
@@ -215,53 +215,27 @@ function saswp_admin_interface_render(){
|
|
215 |
</form>
|
216 |
</div>
|
217 |
<div class="saswp-settings-second-div">
|
218 |
-
<
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
<ul>
|
228 |
-
<li><a target="_blank" href="https://wordpress.org/support/plugin/schema-and-structured-data-for-wp/reviews/#new-post"><?php echo esc_html__( 'I would like to review this plugin', 'schema-and-structured-data-for-wp' ); ?></a></li>
|
229 |
-
<li><a target="_blank" href="http://structured-data-for-wp.com/contact-us/"><?php echo esc_html__( 'I have ideas to improve this plugin', 'schema-and-structured-data-for-wp' ); ?></a></li>
|
230 |
-
<li><a href="<?php echo esc_url( admin_url( 'admin.php?page=structured_data_options&tab=support' ) ); ?>"><?php echo esc_html__( 'I need help this plugin', 'schema-and-structured-data-for-wp' ); ?></a></li>
|
231 |
-
</ul>
|
232 |
-
<div class="saswp-social-sharing-buttons">
|
233 |
-
<a class="saswp-facebook-share" href="https://www.facebook.com/sharer/sharer.php?u=http://structured-data-for-wp.com/" target="_blank">
|
234 |
-
<span class="dashicons dashicons-facebook"></span>
|
235 |
-
<?php echo esc_html__( 'Share', 'schema-and-structured-data-for-wp' ); ?>
|
236 |
-
</a>
|
237 |
-
<a target="_blank" class="twitter-share-button"
|
238 |
-
href="https://twitter.com/home?status=I'm%20using%20this%20Structured%20data%20WordPress%20plugin%20for%20implementing%20Schema%20on%20my%20site!%20http%3A//structured-data-for-wp.com/%20via%20%40WPF_community">
|
239 |
-
<span class="dashicons dashicons-twitter"></span>
|
240 |
-
<?php echo esc_html__( 'Tweet', 'schema-and-structured-data-for-wp' ); ?>
|
241 |
-
</a>
|
242 |
-
</div>
|
243 |
-
|
244 |
-
</div>
|
245 |
-
<div class="saswp-view-docs">
|
246 |
-
|
247 |
-
<p class="saswp-quick-setup"><?php echo esc_html__('Need Help?','schema-and-structured-data-for-wp') ?></p>
|
248 |
-
<a class="button button-default" target="_blank" href="http://structured-data-for-wp.com/docs/"><?php echo esc_html__('View Documentation','schema-and-structured-data-for-wp') ?></a>
|
249 |
-
|
250 |
</div>
|
251 |
-
|
252 |
<?php if(!saswp_ext_installed_status()) { ?>
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
<?php } ?>
|
265 |
</div>
|
266 |
</div>
|
267 |
|
215 |
</form>
|
216 |
</div>
|
217 |
<div class="saswp-settings-second-div">
|
218 |
+
<a target="_blank" href="http://structured-data-for-wp.com/pricing/">
|
219 |
+
<div class="saswp-upgrade-pro promo-cpn">
|
220 |
+
<h2><?php echo esc_html__('50% OFF on PRO','schema-and-structured-data-for-wp') ?></h2>
|
221 |
+
<span><?php echo esc_html__('Limited Time Offer for this festive season','schema-and-structured-data-for-wp') ?></span>
|
222 |
+
<div class="saswp-promo">
|
223 |
+
<span class="prm-txt"><?php echo esc_html__('Promo:','schema-and-structured-data-for-wp') ?></span>
|
224 |
+
<span class="prm-cpn"><?php echo esc_html__('BFCM2019','schema-and-structured-data-for-wp') ?></span>
|
225 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
</div>
|
227 |
+
</a>
|
228 |
<?php if(!saswp_ext_installed_status()) { ?>
|
229 |
+
<div class="saswp-upgrade-pro">
|
230 |
+
<h2><?php echo esc_html__('Upgrade to Pro!','schema-and-structured-data-for-wp') ?></h2>
|
231 |
+
<ul>
|
232 |
+
<li><?php echo esc_html__('Premium features','schema-and-structured-data-for-wp') ?></li>
|
233 |
+
<li><?php echo esc_html__('Dedicated Schema Support','schema-and-structured-data-for-wp') ?></li>
|
234 |
+
<li><?php echo esc_html__('Active Development','schema-and-structured-data-for-wp') ?></li>
|
235 |
+
</ul>
|
236 |
+
<a target="_blank" href="http://structured-data-for-wp.com/pricing/"><?php echo esc_html__('UPGRADE','schema-and-structured-data-for-wp') ?></a>
|
237 |
+
</div>
|
238 |
+
<?php } ?>
|
|
|
|
|
239 |
</div>
|
240 |
</div>
|
241 |
|
core/array-list/plugins.php
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly.
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
4 |
+
|
5 |
+
return array(
|
6 |
+
|
7 |
+
array(
|
8 |
+
'key' => 'kk_star_ratings',
|
9 |
+
'name' => 'kk Star Ratings',
|
10 |
+
'path_free' => 'kk-star-ratings/index.php',
|
11 |
+
'status_key' => 'saswp-kk-star-raring',
|
12 |
+
),
|
13 |
+
array(
|
14 |
+
'key' => 'wp_post_ratings',
|
15 |
+
'name' => 'WP-PostRatings',
|
16 |
+
'path_free' => 'wp-postratings/wp-postratings.php',
|
17 |
+
'status_key' => 'saswp-wppostratings-raring',
|
18 |
+
),
|
19 |
+
array(
|
20 |
+
'key' => 'bb_press',
|
21 |
+
'name' => 'bbPress',
|
22 |
+
'path_free' => 'bbpress/bbpress.php',
|
23 |
+
'status_key' => 'saswp-bbpress',
|
24 |
+
),
|
25 |
+
array(
|
26 |
+
'key' => 'woocommerce',
|
27 |
+
'name' => 'Woocommerce',
|
28 |
+
'path_free' => 'woocommerce/woocommerce.php',
|
29 |
+
'status_key' => 'saswp-woocommerce',
|
30 |
+
),
|
31 |
+
array(
|
32 |
+
'key' => 'cooked',
|
33 |
+
'name' => 'Cooked',
|
34 |
+
'path_free' => 'cooked/cooked.php',
|
35 |
+
'path_pro' => 'cooked-pro/cooked-pro.php',
|
36 |
+
'status_key' => 'saswp-cooked',
|
37 |
+
),
|
38 |
+
array(
|
39 |
+
'key' => 'the_events_calendar',
|
40 |
+
'name' => 'The Events Calendar',
|
41 |
+
'path_free' => 'the-events-calendar/the-events-calendar.php',
|
42 |
+
'status_key' => 'saswp-the-events-calendar',
|
43 |
+
),
|
44 |
+
array(
|
45 |
+
'key' => 'event_organiser',
|
46 |
+
'name' => 'Event Organiser',
|
47 |
+
'path_free' => 'event-organiser/event-organiser.php',
|
48 |
+
'status_key' => 'saswp-event-organiser',
|
49 |
+
),
|
50 |
+
array(
|
51 |
+
'key' => 'modern_events_calendar',
|
52 |
+
'name' => 'Modern Events Calendar Lite',
|
53 |
+
'path_free' => 'modern-events-calendar-lite/modern-events-calendar-lite.php',
|
54 |
+
'status_key' => 'saswp-modern-events-calendar',
|
55 |
+
),
|
56 |
+
array(
|
57 |
+
'key' => 'wp_event_manager',
|
58 |
+
'name' => 'WP Event Manager',
|
59 |
+
'path_free' => 'wp-event-manager/wp-event-manager.php',
|
60 |
+
'status_key' => 'saswp-wp-event-manager',
|
61 |
+
),
|
62 |
+
array(
|
63 |
+
'key' => 'events_manager',
|
64 |
+
'name' => 'Events Manager',
|
65 |
+
'path_free' => 'events-manager/events-manager.php',
|
66 |
+
'status_key' => 'saswp-events-manager',
|
67 |
+
),
|
68 |
+
array(
|
69 |
+
'key' => 'event_calendar_wd',
|
70 |
+
'name' => 'Event Calendar WD',
|
71 |
+
'path_free' => 'event-calendar-wd/ecwd.php',
|
72 |
+
'status_key' => 'saswp-event-calendar-wd',
|
73 |
+
),
|
74 |
+
array(
|
75 |
+
'key' => 'dw_qna',
|
76 |
+
'name' => 'DW Question Answer',
|
77 |
+
'path_free' => 'dw-question-answer/dw-question-answer.php',
|
78 |
+
'path_pro' => 'dw-question-answer-pro/dw-question-answer.php',
|
79 |
+
'status_key' => 'saswp-dw-question-answer',
|
80 |
+
),
|
81 |
+
array(
|
82 |
+
'key' => 'yoast_seo',
|
83 |
+
'name' => 'Yoast Seo',
|
84 |
+
'path_free' => 'wordpress-seo/wp-seo.php',
|
85 |
+
'path_pro' => 'wordpress-seo-premium/wp-seo-premium.php',
|
86 |
+
'status_key' => 'saswp-yoast',
|
87 |
+
),
|
88 |
+
array(
|
89 |
+
'key' => 'rank_math',
|
90 |
+
'name' => 'Rank Math',
|
91 |
+
'path_free' => 'seo-by-rank-math/rank-math.php',
|
92 |
+
'path_pro' => 'seo-by-rank-math-premium/rank-math-premium.php',
|
93 |
+
'status_key' => 'saswp-rankmath',
|
94 |
+
),
|
95 |
+
array(
|
96 |
+
'key' => 'smart_crawl',
|
97 |
+
'name' => 'SmartCrawl Seo',
|
98 |
+
'path_free' => 'smartcrawl-seo/wpmu-dev-seo.php',
|
99 |
+
'status_key' => 'saswp-smart-crawl',
|
100 |
+
),
|
101 |
+
array(
|
102 |
+
'key' => 'the_seo_framework',
|
103 |
+
'name' => 'The SEO Framework',
|
104 |
+
'path_free' => 'autodescription/autodescription.php',
|
105 |
+
'status_key' => 'saswp-the-seo-framework',
|
106 |
+
),
|
107 |
+
array(
|
108 |
+
'key' => 'seo_press',
|
109 |
+
'name' => 'SEOPress',
|
110 |
+
'path_free' => 'wp-seopress/seopress.php',
|
111 |
+
'status_key' => 'saswp-seo-press',
|
112 |
+
),
|
113 |
+
array(
|
114 |
+
'key' => 'aiosp',
|
115 |
+
'name' => 'All in One SEO Pack',
|
116 |
+
'path_free' => 'all-in-one-seo-pack/all_in_one_seo_pack.php',
|
117 |
+
'status_key' => 'saswp-aiosp',
|
118 |
+
),
|
119 |
+
array(
|
120 |
+
'key' => 'squirrly_seo',
|
121 |
+
'name' => 'Squirrly SEO',
|
122 |
+
'path_free' => 'squirrly-seo/squirrly.php',
|
123 |
+
'status_key' => 'saswp-squirrly-seo',
|
124 |
+
),
|
125 |
+
array(
|
126 |
+
'key' => 'wp_recipe_maker',
|
127 |
+
'name' => 'WP Recipe Maker',
|
128 |
+
'path_free' => 'wp-recipe-maker/wp-recipe-maker.php',
|
129 |
+
'status_key' => 'saswp-wp-recipe-maker',
|
130 |
+
),
|
131 |
+
|
132 |
+
);
|
google_review/google_review.php
ADDED
@@ -0,0 +1,303 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Google Review Class
|
4 |
+
*
|
5 |
+
* @author Magazine3
|
6 |
+
* @category Admin
|
7 |
+
* @path google_review/google_review
|
8 |
+
* @Version 1.8
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
class saswp_google_review{
|
15 |
+
|
16 |
+
public function __construct() {
|
17 |
+
|
18 |
+
}
|
19 |
+
/**
|
20 |
+
* List of hooks used in google review class
|
21 |
+
* since @version 1.8
|
22 |
+
*/
|
23 |
+
public function saswp_google_review_hooks(){
|
24 |
+
|
25 |
+
add_action( 'init', array($this, 'saswp_add_google_review_menu_links'),20);
|
26 |
+
|
27 |
+
add_shortcode('saswp_google_review', array($this,'saswp_google_review_shortcode'));
|
28 |
+
|
29 |
+
if(is_admin()){
|
30 |
+
|
31 |
+
add_filter('get_edit_post_link', array($this, 'saswp_get_edit_post_link'), 99, 3);
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
}
|
36 |
+
|
37 |
+
public function saswp_get_edit_post_link($link, $post_id, $context){
|
38 |
+
|
39 |
+
$scr = get_current_screen();
|
40 |
+
|
41 |
+
$id = '';
|
42 |
+
|
43 |
+
if(is_object($scr)){
|
44 |
+
$id = $scr->id;
|
45 |
+
}
|
46 |
+
|
47 |
+
if ($id == 'edit-saswp-google-review' && $context == 'display') {
|
48 |
+
|
49 |
+
return wp_nonce_url(admin_url('admin.php?post_id='.$post_id.'&page=collection'), '_wpnonce');
|
50 |
+
|
51 |
+
} else {
|
52 |
+
|
53 |
+
return $link;
|
54 |
+
|
55 |
+
}
|
56 |
+
}
|
57 |
+
/**
|
58 |
+
* Function to register google review post type
|
59 |
+
* @since version 1.8
|
60 |
+
*/
|
61 |
+
public function saswp_add_google_review_menu_links() {
|
62 |
+
|
63 |
+
$collection_post_type = array(
|
64 |
+
'labels' => array(
|
65 |
+
'name' => esc_html__( 'Google Review', 'schema-and-structured-data-for-wp' ),
|
66 |
+
'add_new' => esc_html__( 'Add Place', 'schema-and-structured-data-for-wp' ),
|
67 |
+
'add_new_item' => esc_html__( 'Edit Collection', 'schema-and-structured-data-for-wp' ),
|
68 |
+
'edit_item' => esc_html__( 'Edit AD','schema-and-structured-data-for-wp'),
|
69 |
+
),
|
70 |
+
'public' => true,
|
71 |
+
'has_archive' => false,
|
72 |
+
'exclude_from_search' => true,
|
73 |
+
'publicly_queryable' => false,
|
74 |
+
'show_in_menu' => 'edit.php?post_type=saswp',
|
75 |
+
'show_ui' => true,
|
76 |
+
'show_in_nav_menus' => false,
|
77 |
+
'show_admin_column' => true,
|
78 |
+
'rewrite' => false,
|
79 |
+
);
|
80 |
+
register_post_type( 'saswp-google-review', $collection_post_type );
|
81 |
+
|
82 |
+
}
|
83 |
+
/**
|
84 |
+
* Function to fetch all the google place post
|
85 |
+
* @return type array
|
86 |
+
* @since version 1.8
|
87 |
+
*/
|
88 |
+
public function saswp_fetch_all_google_review_post(){
|
89 |
+
|
90 |
+
$all_post = get_posts(
|
91 |
+
array(
|
92 |
+
'post_type' => 'saswp-google-review',
|
93 |
+
'posts_per_page' => -1,
|
94 |
+
'post_status' => 'publish',
|
95 |
+
)
|
96 |
+
);
|
97 |
+
|
98 |
+
return $all_post;
|
99 |
+
}
|
100 |
+
/**
|
101 |
+
* Function to get google review list by using shortcode
|
102 |
+
* @param type $attr
|
103 |
+
* @return string
|
104 |
+
* @since @version 1.8
|
105 |
+
*/
|
106 |
+
public function saswp_google_review_shortcode($attr){
|
107 |
+
|
108 |
+
$post_id = $attr['id'];
|
109 |
+
|
110 |
+
if($post_id){
|
111 |
+
|
112 |
+
if(saswp_global_option()){
|
113 |
+
|
114 |
+
$schema_markup = $this->saswp_get_google_review_schema_markup($post_id);
|
115 |
+
|
116 |
+
}
|
117 |
+
$output = $this->saswp_google_review_front_output($post_id);
|
118 |
+
|
119 |
+
if($schema_markup){
|
120 |
+
$output = $output.$schema_markup;
|
121 |
+
}
|
122 |
+
return $output;
|
123 |
+
|
124 |
+
}
|
125 |
+
|
126 |
+
}
|
127 |
+
/**
|
128 |
+
* Function to generate google review schema markup
|
129 |
+
* @global type $wpdb
|
130 |
+
* @global type $sd_data
|
131 |
+
* @param type $post_id
|
132 |
+
* @return string
|
133 |
+
* @since Version 1.8
|
134 |
+
*
|
135 |
+
*/
|
136 |
+
public function saswp_get_google_review_schema_markup($post_id){
|
137 |
+
|
138 |
+
global $wpdb;
|
139 |
+
global $sd_data;
|
140 |
+
$html = '';
|
141 |
+
|
142 |
+
$place_id = get_post_meta($post_id, $key='saswp_google_place_id', true );
|
143 |
+
|
144 |
+
if($place_id){
|
145 |
+
|
146 |
+
$place = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "saswp_google_place WHERE place_id = %s", $place_id));
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
$date = get_the_date("Y-m-d\TH:i:s\Z");
|
151 |
+
$modified_date = get_the_modified_date("Y-m-d\TH:i:s\Z");
|
152 |
+
|
153 |
+
if($place->rating && isset($sd_data['saswp-google-review']) && $sd_data['saswp-google-review'] == 1){
|
154 |
+
|
155 |
+
$total_score = esc_attr(number_format((float)$place->rating, 2, '.', ''));
|
156 |
+
|
157 |
+
$input1 = array(
|
158 |
+
'@context' => 'http://schema.org',
|
159 |
+
'@type' => 'Review',
|
160 |
+
'dateCreated' => esc_html($date),
|
161 |
+
'datePublished' => esc_html($date),
|
162 |
+
'dateModified' => esc_html($modified_date),
|
163 |
+
'headline' => saswp_get_the_title(),
|
164 |
+
'name' => saswp_get_the_title(),
|
165 |
+
'url' => get_permalink(),
|
166 |
+
'description' => saswp_get_the_excerpt(),
|
167 |
+
'copyrightYear' => get_the_time( 'Y' ),
|
168 |
+
'author' => saswp_get_author_details()
|
169 |
+
);
|
170 |
+
|
171 |
+
$input1['itemReviewed'] = array(
|
172 |
+
'@type' => 'Thing',
|
173 |
+
'name' => saswp_get_the_title(),
|
174 |
+
);
|
175 |
+
|
176 |
+
$input1['reviewRating'] = array(
|
177 |
+
'@type' => 'Rating',
|
178 |
+
'worstRating' => 1,
|
179 |
+
'bestRating' => 5,
|
180 |
+
'ratingValue' => esc_attr($total_score),
|
181 |
+
);
|
182 |
+
|
183 |
+
if(!empty($input1)){
|
184 |
+
|
185 |
+
$html .= "\n";
|
186 |
+
$html .= '<!-- Schema & Structured Data For Google Review v'.esc_attr(SASWP_VERSION).' - -->';
|
187 |
+
$html .= "\n";
|
188 |
+
$html .= '<script type="application/ld+json">';
|
189 |
+
$html .= "\n";
|
190 |
+
$html .= saswp_json_print_format($input1);
|
191 |
+
$html .= "\n";
|
192 |
+
$html .= '</script>';
|
193 |
+
$html .= "\n\n";
|
194 |
+
|
195 |
+
}
|
196 |
+
|
197 |
+
}
|
198 |
+
|
199 |
+
return $html;
|
200 |
+
}
|
201 |
+
/**
|
202 |
+
* Function to show google review list at user end
|
203 |
+
* @global type $wpdb
|
204 |
+
* @param type $post_id
|
205 |
+
* @return string
|
206 |
+
* @since version 1.8
|
207 |
+
*/
|
208 |
+
public function saswp_google_review_front_output($post_id){
|
209 |
+
|
210 |
+
global $wpdb;
|
211 |
+
$reviews = null;
|
212 |
+
$output = '';
|
213 |
+
|
214 |
+
$place_id = get_post_meta($post_id, $key='saswp_google_place_id', true );
|
215 |
+
|
216 |
+
if($place_id){
|
217 |
+
|
218 |
+
$place = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "saswp_google_place WHERE place_id = %s", $place_id));
|
219 |
+
|
220 |
+
if($place->id){
|
221 |
+
|
222 |
+
$reviews = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "saswp_google_review WHERE google_place_id = %d ORDER BY time DESC", $place->id));
|
223 |
+
|
224 |
+
if($reviews){
|
225 |
+
|
226 |
+
foreach ($reviews as $review){
|
227 |
+
|
228 |
+
$review_rating = $review->rating;
|
229 |
+
|
230 |
+
$starating = '';
|
231 |
+
|
232 |
+
$starating .= '<div class="saswp-rvw-str">';
|
233 |
+
for($j=0; $j<5; $j++){
|
234 |
+
|
235 |
+
if($review_rating >$j){
|
236 |
+
|
237 |
+
$explod = explode('.', $review_rating);
|
238 |
+
|
239 |
+
if(isset($explod[1])){
|
240 |
+
|
241 |
+
if($j <$explod[0]){
|
242 |
+
|
243 |
+
$starating.='<span class="str-ic"></span>';
|
244 |
+
|
245 |
+
}else{
|
246 |
+
|
247 |
+
$starating.='<span class="half-str"></span>';
|
248 |
+
|
249 |
+
}
|
250 |
+
}else{
|
251 |
+
|
252 |
+
$starating.='<span class="str-ic"></span>';
|
253 |
+
|
254 |
+
}
|
255 |
+
|
256 |
+
} else{
|
257 |
+
$starating.='<span class="df-clr"></span>';
|
258 |
+
}
|
259 |
+
}
|
260 |
+
$starating .= '</div>';
|
261 |
+
|
262 |
+
$output.= '<div class="saswp-g-review-panel">
|
263 |
+
<div class="saswp-glg-review-body">
|
264 |
+
<div class="saswp-rv-img">
|
265 |
+
<img src="'.esc_url($review->profile_photo_url).'" alt="'.$review->author_name.'">
|
266 |
+
</div>
|
267 |
+
<div class="saswp-rv-cnt">
|
268 |
+
<div class="saswp-str-rtng">
|
269 |
+
<div class="saswp-str">
|
270 |
+
<span class="saswp-athr">'.$review->author_name.'</span>
|
271 |
+
'.$starating.'
|
272 |
+
</div>
|
273 |
+
<span class="saswp-g-plus">
|
274 |
+
<a href="#"><img src="'.SASWP_PLUGIN_URL.'/admin_section/images/google-img.png'.'"></a>
|
275 |
+
</span>
|
276 |
+
</div>
|
277 |
+
<span class="saswp-pt-dt">'.gmdate("H:i d M y", $review->time).'</span>
|
278 |
+
<p>'.substr($review->text,0,300).'</p>
|
279 |
+
</div>
|
280 |
+
</div>
|
281 |
+
</div>';
|
282 |
+
|
283 |
+
}
|
284 |
+
|
285 |
+
}
|
286 |
+
|
287 |
+
}
|
288 |
+
|
289 |
+
}
|
290 |
+
|
291 |
+
return $output;
|
292 |
+
|
293 |
+
}
|
294 |
+
|
295 |
+
}
|
296 |
+
|
297 |
+
if (class_exists('saswp_google_review')) {
|
298 |
+
|
299 |
+
$object = new saswp_google_review;
|
300 |
+
$object->saswp_google_review_hooks();
|
301 |
+
|
302 |
+
};
|
303 |
+
|
google_review/google_review_page.php
ADDED
@@ -0,0 +1,400 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Google Review Page
|
4 |
+
*
|
5 |
+
* @author Magazine3
|
6 |
+
* @category Admin
|
7 |
+
* @path google_review/google_review_page
|
8 |
+
* @Version 1.8
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
add_action('admin_init', 'saswp_add_google_places');
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Function to save google place review by place id
|
18 |
+
* Since @version 1.8
|
19 |
+
*/
|
20 |
+
function saswp_add_google_places(){
|
21 |
+
|
22 |
+
if(!function_exists('wp_get_current_user')) {
|
23 |
+
include(ABSPATH . "wp-includes/pluggable.php");
|
24 |
+
}
|
25 |
+
|
26 |
+
if(isset($_POST['place_post_ID'])){
|
27 |
+
|
28 |
+
$post_id = sanitize_text_field($_POST['place_post_ID']);
|
29 |
+
$post_title = sanitize_text_field($_POST['saswp_g_review_title']);
|
30 |
+
|
31 |
+
$post = array(
|
32 |
+
'ID' => $post_id,
|
33 |
+
'post_title' => $post_title,
|
34 |
+
'post_status' => 'publish',
|
35 |
+
'post_name' => $post_title,
|
36 |
+
'post_type' => 'saswp-google-review',
|
37 |
+
);
|
38 |
+
|
39 |
+
wp_update_post($post);
|
40 |
+
|
41 |
+
$post_meta = array();
|
42 |
+
|
43 |
+
$post_meta['saswp_google_place_id'] = sanitize_text_field($_POST['saswp_google_place_id']);
|
44 |
+
$post_meta['saswp_language_list'] = sanitize_text_field($_POST['saswp_language_list']);
|
45 |
+
$post_meta['saswp_googel_api'] = sanitize_text_field($_POST['saswp_googel_api']);
|
46 |
+
|
47 |
+
if(!empty($post_meta)){
|
48 |
+
|
49 |
+
foreach($post_meta as $meta_key => $meta_val){
|
50 |
+
|
51 |
+
update_post_meta($post_id, $meta_key, $meta_val);
|
52 |
+
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
56 |
+
|
57 |
+
if($_POST['saswp-page'] == 'collection'){
|
58 |
+
|
59 |
+
$current_url = htmlspecialchars_decode(wp_nonce_url(admin_url('admin.php?post_id='.$post_id.'&page=collection'), '_wpnonce'));
|
60 |
+
wp_redirect( $current_url );
|
61 |
+
exit;
|
62 |
+
}
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
+
class saswp_google_review_page{
|
69 |
+
|
70 |
+
public function __construct() {
|
71 |
+
|
72 |
+
add_action( 'admin_menu', array($this, 'saswp_add_google_review_links'),20);
|
73 |
+
add_action( 'wp_ajax_saswp_connect_google_place', array($this,'saswp_connect_google_place'));
|
74 |
+
|
75 |
+
}
|
76 |
+
/**
|
77 |
+
* Ajax Function to connect google place api with place id
|
78 |
+
* @return type json
|
79 |
+
* Since @version 1.8
|
80 |
+
*/
|
81 |
+
public function saswp_connect_google_place(){
|
82 |
+
|
83 |
+
if ( ! isset( $_POST['saswp_security_nonce'] ) ){
|
84 |
+
return;
|
85 |
+
}
|
86 |
+
if ( !wp_verify_nonce( $_POST['saswp_security_nonce'], 'saswp_ajax_check_nonce' ) ){
|
87 |
+
return;
|
88 |
+
}
|
89 |
+
|
90 |
+
$place_id = '';
|
91 |
+
$language = '';
|
92 |
+
$google_api = '';
|
93 |
+
|
94 |
+
if(isset($_POST['place_id'])){
|
95 |
+
$place_id = sanitize_text_field($_POST['place_id']);
|
96 |
+
}
|
97 |
+
if(isset($_POST['language'])){
|
98 |
+
$language = sanitize_text_field($_POST['language']);
|
99 |
+
}
|
100 |
+
if(isset($_POST['google_api'])){
|
101 |
+
$google_api = sanitize_text_field($_POST['google_api']);
|
102 |
+
}
|
103 |
+
|
104 |
+
if($place_id){
|
105 |
+
|
106 |
+
$result = saswp_get_google_review_data($place_id, $language);
|
107 |
+
|
108 |
+
if($result){
|
109 |
+
|
110 |
+
echo json_encode(array('status' => 't'));
|
111 |
+
|
112 |
+
}else{
|
113 |
+
|
114 |
+
echo json_encode(array('status' => 'f'));
|
115 |
+
|
116 |
+
}
|
117 |
+
|
118 |
+
}
|
119 |
+
|
120 |
+
wp_die();
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
public function saswp_add_google_review_links() {
|
125 |
+
|
126 |
+
add_submenu_page( 'edit.php?post_type=saswp',
|
127 |
+
esc_html__( 'Structured Data', 'schema-and-structured-data-for-wp' ),
|
128 |
+
esc_html__( '', 'schema-and-structured-data-for-wp' ),
|
129 |
+
'manage_options',
|
130 |
+
'collection',
|
131 |
+
array($this, 'saswp_admin_google_review_interface_render'));
|
132 |
+
|
133 |
+
}
|
134 |
+
/**
|
135 |
+
* Function to create google review page in admin area
|
136 |
+
* @global type $wpdb
|
137 |
+
* Since @version 1.8
|
138 |
+
*/
|
139 |
+
public function saswp_admin_google_review_interface_render(){
|
140 |
+
|
141 |
+
global $wpdb;
|
142 |
+
|
143 |
+
$language = array(
|
144 |
+
'af' => 'Afrikanns',
|
145 |
+
'sq' => 'Albanian',
|
146 |
+
'ar' => 'Arabic',
|
147 |
+
'hy' => 'Armenian',
|
148 |
+
'eu' => 'Basque',
|
149 |
+
'bn' => 'Bengali',
|
150 |
+
'bg' => 'Bulgarian',
|
151 |
+
'ca' => 'Catalan',
|
152 |
+
'km' => 'Cambodian',
|
153 |
+
'zh' => 'Chinese (Mandarin)',
|
154 |
+
'hr' => 'Croation',
|
155 |
+
'cs' => 'Czech',
|
156 |
+
'da' => 'Danish',
|
157 |
+
'nl' => 'Dutch',
|
158 |
+
'en' => 'English',
|
159 |
+
'et' => 'Estonian',
|
160 |
+
'fj' => 'Fiji',
|
161 |
+
'fi' => 'Finnish',
|
162 |
+
'fr' => 'French',
|
163 |
+
'ka' => 'Georgian',
|
164 |
+
'de' => 'German',
|
165 |
+
'el' => 'Greek',
|
166 |
+
'gu' => 'Gujarati',
|
167 |
+
'he' => 'Hebrew',
|
168 |
+
'hi' => 'Hindi',
|
169 |
+
'hu' => 'Hungarian',
|
170 |
+
'is' => 'Icelandic',
|
171 |
+
'id' => 'Indonesian',
|
172 |
+
'ga' => 'Irish',
|
173 |
+
'it' => 'Italian',
|
174 |
+
'ja' => 'Japanese',
|
175 |
+
'jw' => 'Javanese',
|
176 |
+
'ko' => 'Korean',
|
177 |
+
'la' => 'Latin',
|
178 |
+
'lv' => 'Latvian',
|
179 |
+
'lt' => 'Lithuanian',
|
180 |
+
'mk' => 'Macedonian',
|
181 |
+
'ms' => 'Malay',
|
182 |
+
'ml' => 'Malayalam',
|
183 |
+
'mt' => 'Maltese',
|
184 |
+
'mi' => 'Maori',
|
185 |
+
'mr' => 'Marathi',
|
186 |
+
'mn' => 'Mongolian',
|
187 |
+
'ne' => 'Nepali',
|
188 |
+
'no' => 'Norwegian',
|
189 |
+
'fa' => 'Persian',
|
190 |
+
'pl' => 'Polish',
|
191 |
+
'pt' => 'Portuguese',
|
192 |
+
'pa' => 'Punjabi',
|
193 |
+
'qu' => 'Quechua',
|
194 |
+
'ro' => 'Romanian',
|
195 |
+
'ru' => 'Russian',
|
196 |
+
'sm' => 'Samoan',
|
197 |
+
'sr' => 'Serbian',
|
198 |
+
'sk' => 'Slovak',
|
199 |
+
'sl' => 'Slovenian',
|
200 |
+
'es' => 'Spanish',
|
201 |
+
'sw' => 'Swahili',
|
202 |
+
'sv' => 'Swedish ',
|
203 |
+
'ta' => 'Tamil',
|
204 |
+
'tt' => 'Tatar',
|
205 |
+
'te' => 'Telugu',
|
206 |
+
'th' => 'Thai',
|
207 |
+
'bo' => 'Tibetan',
|
208 |
+
'to' => 'Tonga',
|
209 |
+
'tr' => 'Turkish',
|
210 |
+
'uk' => 'Ukranian',
|
211 |
+
'ur' => 'Urdu',
|
212 |
+
'uz' => 'Uzbek',
|
213 |
+
'vi' => 'Vietnamese',
|
214 |
+
'cy' => 'Welsh',
|
215 |
+
'xh' => 'Xhosa'
|
216 |
+
);
|
217 |
+
|
218 |
+
$post_meta = array();
|
219 |
+
$post_id = '';
|
220 |
+
$reviews = null;
|
221 |
+
|
222 |
+
if(isset($_GET['post_id'])){
|
223 |
+
|
224 |
+
$post_id = intval($_GET['post_id']);
|
225 |
+
|
226 |
+
|
227 |
+
$post_meta = get_post_meta($post_id, $key='', true );
|
228 |
+
|
229 |
+
|
230 |
+
} else{
|
231 |
+
|
232 |
+
$post = get_default_post_to_edit( 'saswp-google-review', true );
|
233 |
+
$post_id = $post->ID;
|
234 |
+
}
|
235 |
+
|
236 |
+
if(isset($post_meta['saswp_google_place_id'])){
|
237 |
+
|
238 |
+
$place_id = trim($post_meta['saswp_google_place_id'][0]);
|
239 |
+
$place = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "saswp_google_place WHERE place_id = %s", $place_id));
|
240 |
+
|
241 |
+
if(is_object($place)){
|
242 |
+
|
243 |
+
$reviews = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "saswp_google_review WHERE google_place_id = %d ORDER BY time DESC", $place->id));
|
244 |
+
|
245 |
+
}
|
246 |
+
|
247 |
+
}
|
248 |
+
|
249 |
+
?>
|
250 |
+
<div class="saswp-heading">
|
251 |
+
<h1 class="wp-heading-inline"><?php echo esc_html__('Google Review','schema-and-structured-data-for-wp'); ?> </h1><span class="saswp-need-help"><a target="_blank" href="http://structured-data-for-wp.com/docs/article/how-to-display-google-review/"><?php echo esc_html__('Need Help?','schema-and-structured-data-for-wp'); ?></a></span>
|
252 |
+
</div>
|
253 |
+
|
254 |
+
<div class="saswp-g-review-container">
|
255 |
+
<form method="post" action="post.php">
|
256 |
+
<div class="saswp-g-review-header">
|
257 |
+
|
258 |
+
<input type="hidden" name="post_type" value="saswp-google-review">
|
259 |
+
<input type="hidden" name="saswp-page" value="collection">
|
260 |
+
<input type="hidden" id="place_post_ID" name="place_post_ID" value="<?php echo $post_id; ?>">
|
261 |
+
<input type="text" value="<?php if(get_the_title($post_id) == 'Auto Draft'){ echo 'Untitled'; }else{ echo get_the_title($post_id); } ?>" id="saswp_g_review_title" name="saswp_g_review_title" style="width: 30%;">
|
262 |
+
|
263 |
+
<button type="submit" class="btn btn-success button-primary" > <?php echo esc_html__('Save','schema-and-structured-data-for-wp'); ?> </button>
|
264 |
+
<div>Use ShortCode [saswp_google_review id="<?php echo $post_id; ?>"]</div>
|
265 |
+
|
266 |
+
</div>
|
267 |
+
|
268 |
+
<div class="saswp-g-review-body">
|
269 |
+
|
270 |
+
<div class="saswp-review-list">
|
271 |
+
|
272 |
+
<?php
|
273 |
+
|
274 |
+
if($reviews){
|
275 |
+
|
276 |
+
foreach ($reviews as $review){
|
277 |
+
|
278 |
+
$review_rating = $review->rating;
|
279 |
+
|
280 |
+
$starating = '';
|
281 |
+
|
282 |
+
$starating .= '<div class="saswp-rvw-str">';
|
283 |
+
|
284 |
+
for($j=0; $j<5; $j++){
|
285 |
+
|
286 |
+
if($review_rating >$j){
|
287 |
+
|
288 |
+
$explod = explode('.', $review_rating);
|
289 |
+
|
290 |
+
if(isset($explod[1])){
|
291 |
+
|
292 |
+
if($j <$explod[0]){
|
293 |
+
|
294 |
+
$starating.='<span class="str-ic"></span>';
|
295 |
+
|
296 |
+
}else{
|
297 |
+
|
298 |
+
$starating.='<span class="half-str"></span>';
|
299 |
+
|
300 |
+
}
|
301 |
+
}else{
|
302 |
+
|
303 |
+
$starating.='<span class="str-ic"></span>';
|
304 |
+
|
305 |
+
}
|
306 |
+
|
307 |
+
} else{
|
308 |
+
$starating.='<span class="df-clr"></span>';
|
309 |
+
}
|
310 |
+
}
|
311 |
+
$starating .= '</div>';
|
312 |
+
|
313 |
+
|
314 |
+
echo '<div class="saswp-g-review-panel">
|
315 |
+
<div class="saswp-glg-review-body">
|
316 |
+
<div class="saswp-rv-img">
|
317 |
+
<img src="'.esc_url($review->profile_photo_url).'" alt="'.esc_attr($review->author_name).'">
|
318 |
+
</div>
|
319 |
+
<div class="saswp-rv-cnt">
|
320 |
+
<div class="saswp-str-rtng">
|
321 |
+
<div class="saswp-str">
|
322 |
+
<span class="saswp-athr">'.esc_attr($review->author_name).'</span>
|
323 |
+
'.$starating.'
|
324 |
+
</div>
|
325 |
+
<span class="saswp-g-plus">
|
326 |
+
<a href="#"><img src="'.SASWP_PLUGIN_URL.'/admin_section/images/google-img.png'.'"></a>
|
327 |
+
</span>
|
328 |
+
</div>
|
329 |
+
<span class="saswp-pt-dt">'.gmdate("H:i d M y", $review->time).'</span>
|
330 |
+
<p>'.substr($review->text,0,300).'</p>
|
331 |
+
</div>
|
332 |
+
</div>
|
333 |
+
</div>';
|
334 |
+
|
335 |
+
}
|
336 |
+
|
337 |
+
}
|
338 |
+
|
339 |
+
?>
|
340 |
+
|
341 |
+
</div>
|
342 |
+
|
343 |
+
<div class="saswp-channel-list">
|
344 |
+
<div class="saswp-panel">
|
345 |
+
<h3><?php echo esc_html__('Google Review Settings','schema-and-structured-data-for-wp'); ?></h3>
|
346 |
+
<div class="saswp-input-fields">
|
347 |
+
<label><?php echo esc_html__('Place ID','schema-and-structured-data-for-wp'); ?>:</label><input value="<?php if(isset($post_meta['saswp_google_place_id'])){ echo $post_meta['saswp_google_place_id'][0];} ?>" type="text" id="saswp_google_place_id" name="saswp_google_place_id" placeholder="<?php echo esc_html__('Place Id', 'schema-and-structured-data-for-wp' ); ?>">
|
348 |
+
</div>
|
349 |
+
|
350 |
+
<div class="saswp-input-fields">
|
351 |
+
<label><?php echo esc_html__('Languages','schema-and-structured-data-for-wp'); ?>:</label>
|
352 |
+
<select name="saswp_language_list" id="saswp_language_list">
|
353 |
+
<?php
|
354 |
+
|
355 |
+
foreach ($language as $key => $value) {
|
356 |
+
|
357 |
+
$sel = '';
|
358 |
+
|
359 |
+
if(saswp_remove_warnings($post_meta, 'saswp_language_list', 'saswp_array')==$key){
|
360 |
+
|
361 |
+
$sel = 'selected';
|
362 |
+
|
363 |
+
}
|
364 |
+
|
365 |
+
echo "<option value='".esc_attr($key)."' ".esc_attr($sel).">".esc_html__($value, 'schema-and-structured-data-for-wp' )."</option>";
|
366 |
+
|
367 |
+
}
|
368 |
+
?>
|
369 |
+
</select>
|
370 |
+
|
371 |
+
</div>
|
372 |
+
|
373 |
+
<div class="saswp-input-fields">
|
374 |
+
<label><?php echo esc_html__('Goolge API','schema-and-structured-data-for-wp'); ?></label>
|
375 |
+
<input value="<?php if(isset($post_meta['saswp_googel_api'])){ echo $post_meta['saswp_googel_api'][0];} ?>" type="text" id="saswp_googel_api" name="saswp_googel_api" placeholder="<?php echo esc_html__('Google API', 'schema-and-structured-data-for-wp' ); ?>">
|
376 |
+
</div>
|
377 |
+
|
378 |
+
<div class="saswp-input-fields">
|
379 |
+
<a class="saswp_coonect_google_place btn btn-success button-primary" ><?php echo esc_html__('Connect Google','schema-and-structured-data-for-wp'); ?></a>
|
380 |
+
</div>
|
381 |
+
|
382 |
+
</div>
|
383 |
+
|
384 |
+
</div>
|
385 |
+
|
386 |
+
|
387 |
+
</div>
|
388 |
+
|
389 |
+
</form>
|
390 |
+
</div>
|
391 |
+
|
392 |
+
<?php
|
393 |
+
}
|
394 |
+
|
395 |
+
}
|
396 |
+
|
397 |
+
if (class_exists('saswp_google_review_page')) {
|
398 |
+
new saswp_google_review_page;
|
399 |
+
};
|
400 |
+
|
google_review/google_review_setup.php
ADDED
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Google Review Setup Page
|
4 |
+
*
|
5 |
+
* @author Magazine3
|
6 |
+
* @category Admin
|
7 |
+
* @path google_review/google_review_setup
|
8 |
+
* @Version 1.8
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
add_action('admin_init', 'saswp_create_database_for_existing_users');
|
15 |
+
add_action('the_post', 'saswp_create_database_for_existing_users');
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Function to initiate database installation
|
19 |
+
* @return type null
|
20 |
+
* @Since version 1.8
|
21 |
+
*/
|
22 |
+
function saswp_create_database_for_existing_users(){
|
23 |
+
|
24 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
25 |
+
return;
|
26 |
+
}
|
27 |
+
$status = get_option('saswp-database-on-first-load');
|
28 |
+
|
29 |
+
if($status != 'enable'){
|
30 |
+
|
31 |
+
saswp_google_review_database_install();
|
32 |
+
update_option('saswp-database-on-first-load', 'enable');
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
37 |
+
/**
|
38 |
+
* Function to install database tables for google review
|
39 |
+
* @global type $wpdb
|
40 |
+
* @Since version 1.8
|
41 |
+
*/
|
42 |
+
function saswp_google_review_database_install() {
|
43 |
+
|
44 |
+
global $wpdb;
|
45 |
+
|
46 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
47 |
+
|
48 |
+
$charset_collate = $engine = '';
|
49 |
+
|
50 |
+
|
51 |
+
if(!empty($wpdb->charset)) {
|
52 |
+
$charset_collate .= " DEFAULT CHARACTER SET {$wpdb->charset}";
|
53 |
+
}
|
54 |
+
if($wpdb->has_cap('collation') AND !empty($wpdb->collate)) {
|
55 |
+
$charset_collate .= " COLLATE {$wpdb->collate}";
|
56 |
+
}
|
57 |
+
|
58 |
+
$found_engine = $wpdb->get_var("SELECT ENGINE FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = '".DB_NAME."' AND `TABLE_NAME` = '{$wpdb->prefix}posts';");
|
59 |
+
|
60 |
+
if(strtolower($found_engine) == 'innodb') {
|
61 |
+
$engine = ' ENGINE=InnoDB';
|
62 |
+
}
|
63 |
+
|
64 |
+
$found_tables = $wpdb->get_col("SHOW TABLES LIKE '{$wpdb->prefix}saswp%';");
|
65 |
+
|
66 |
+
if(!in_array("{$wpdb->prefix}saswp_google_place", $found_tables)) {
|
67 |
+
|
68 |
+
dbDelta("CREATE TABLE `{$wpdb->prefix}saswp_google_place` (".
|
69 |
+
"id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
|
70 |
+
"place_id VARCHAR(80) NOT NULL,".
|
71 |
+
"name VARCHAR(255) NOT NULL,".
|
72 |
+
"photo VARCHAR(425),".
|
73 |
+
"icon VARCHAR(255),".
|
74 |
+
"address VARCHAR(255),".
|
75 |
+
"rating DOUBLE PRECISION,".
|
76 |
+
"url VARCHAR(255),".
|
77 |
+
"website VARCHAR(255),".
|
78 |
+
"updated BIGINT(20),".
|
79 |
+
"PRIMARY KEY (`id`),".
|
80 |
+
"UNIQUE INDEX saswp_place_id (`place_id`)".
|
81 |
+
") ".$charset_collate.$engine.";");
|
82 |
+
|
83 |
+
}
|
84 |
+
|
85 |
+
if(!in_array("{$wpdb->prefix}saswp_google_review", $found_tables)) {
|
86 |
+
|
87 |
+
dbDelta("CREATE TABLE `{$wpdb->prefix}saswp_google_review` (".
|
88 |
+
"id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
|
89 |
+
"google_place_id BIGINT(20) UNSIGNED NOT NULL,".
|
90 |
+
"hash VARCHAR(40) NOT NULL,".
|
91 |
+
"rating INTEGER NOT NULL,".
|
92 |
+
"text VARCHAR(10000),".
|
93 |
+
"time INTEGER NOT NULL,".
|
94 |
+
"language VARCHAR(10),".
|
95 |
+
"author_name VARCHAR(255),".
|
96 |
+
"author_url VARCHAR(255),".
|
97 |
+
"profile_photo_url VARCHAR(255),".
|
98 |
+
"PRIMARY KEY (`id`),".
|
99 |
+
"UNIQUE INDEX saswp_google_review_hash (`hash`),".
|
100 |
+
"INDEX saswp_google_place_id (`google_place_id`)".
|
101 |
+
") ".$charset_collate.$engine.";");
|
102 |
+
|
103 |
+
}
|
104 |
+
|
105 |
+
}
|
106 |
+
/**
|
107 |
+
* Function to retrive google review data from google with maps api
|
108 |
+
* @param type $place_id
|
109 |
+
* @param string $language
|
110 |
+
* @return type array
|
111 |
+
* @Since version 1.8
|
112 |
+
*/
|
113 |
+
function saswp_get_google_review_data($place_id, $language=null){
|
114 |
+
|
115 |
+
if($language){
|
116 |
+
|
117 |
+
$language = '&language='.$language;
|
118 |
+
|
119 |
+
}
|
120 |
+
|
121 |
+
if($place_id){
|
122 |
+
|
123 |
+
$result = wp_remote_get('https://maps.googleapis.com/maps/api/place/details/json?placeid='.$place_id.'&key=AIzaSyAQ1j_iD1npoqTRuhrIx-ADeVZjQddUqKs'.$language);
|
124 |
+
|
125 |
+
if($result){
|
126 |
+
|
127 |
+
$result = json_decode($result['body']);
|
128 |
+
$result->result->business_photo = saswp_business_image($result->result);
|
129 |
+
$response = saswp_save_google_reviews($result->result);
|
130 |
+
return $response;
|
131 |
+
}
|
132 |
+
|
133 |
+
}
|
134 |
+
|
135 |
+
}
|
136 |
+
/**
|
137 |
+
* Function to save retrived google review data from google place
|
138 |
+
* @global type $wpdb
|
139 |
+
* @param type $place
|
140 |
+
* @return type string
|
141 |
+
* @Since version 1.8
|
142 |
+
*/
|
143 |
+
function saswp_save_google_reviews($place) {
|
144 |
+
|
145 |
+
global $wpdb;
|
146 |
+
$response = null;
|
147 |
+
|
148 |
+
$google_place_id = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "saswp_google_place WHERE place_id = %s", $place->place_id));
|
149 |
+
|
150 |
+
if ($google_place_id) {
|
151 |
+
|
152 |
+
$response = $wpdb->update($wpdb->prefix . 'saswp_google_place', array(
|
153 |
+
'name' => $place->name,
|
154 |
+
'photo' => $place->business_photo,
|
155 |
+
'rating' => $place->rating
|
156 |
+
), array('ID' => $google_place_id));
|
157 |
+
|
158 |
+
} else {
|
159 |
+
|
160 |
+
$response = $wpdb->insert($wpdb->prefix . 'saswp_google_place', array(
|
161 |
+
'place_id' => $place->place_id,
|
162 |
+
'name' => $place->name,
|
163 |
+
'photo' => $place->business_photo,
|
164 |
+
'icon' => $place->icon,
|
165 |
+
'address' => $place->formatted_address,
|
166 |
+
'rating' => isset($place->rating) ? $place->rating : null,
|
167 |
+
'url' => isset($place->url) ? $place->url : null,
|
168 |
+
'website' => isset($place->website) ? $place->website : null
|
169 |
+
));
|
170 |
+
|
171 |
+
$google_place_id = $wpdb->insert_id;
|
172 |
+
|
173 |
+
}
|
174 |
+
|
175 |
+
if ($place->reviews) {
|
176 |
+
|
177 |
+
$reviews = $place->reviews;
|
178 |
+
|
179 |
+
foreach ($reviews as $review) {
|
180 |
+
|
181 |
+
$google_review_id = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . $wpdb->prefix . "saswp_google_review WHERE time = %s", $review->time));
|
182 |
+
|
183 |
+
if ($google_review_id) {
|
184 |
+
|
185 |
+
$update_params = array(
|
186 |
+
'rating' => $review->rating,
|
187 |
+
'text' => $review->text
|
188 |
+
);
|
189 |
+
|
190 |
+
if (isset($review->profile_photo_url)) {
|
191 |
+
|
192 |
+
$update_params['profile_photo_url'] = $review->profile_photo_url;
|
193 |
+
|
194 |
+
}
|
195 |
+
|
196 |
+
$response = $wpdb->update($wpdb->prefix . 'saswp_google_review', $update_params, array('id' => $google_review_id));
|
197 |
+
|
198 |
+
} else {
|
199 |
+
|
200 |
+
$response = $wpdb->insert($wpdb->prefix . 'saswp_google_review', array(
|
201 |
+
'google_place_id' => $google_place_id,
|
202 |
+
'hash' => $review->time,
|
203 |
+
'rating' => $review->rating,
|
204 |
+
'text' => $review->text,
|
205 |
+
'time' => $review->time,
|
206 |
+
'language' => $review->language,
|
207 |
+
'author_name' => $review->author_name,
|
208 |
+
'author_url' => isset($review->author_url) ? $review->author_url : null,
|
209 |
+
'profile_photo_url' => isset($review->profile_photo_url) ? $review->profile_photo_url : null
|
210 |
+
));
|
211 |
+
|
212 |
+
}
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
return $response;
|
217 |
+
}
|
218 |
+
/**
|
219 |
+
* Function to retrive image from google place
|
220 |
+
* @global type $sd_data
|
221 |
+
* @param type $result_json
|
222 |
+
* @return type string
|
223 |
+
* @Since version 1.8
|
224 |
+
*/
|
225 |
+
function saswp_business_image($result_json) {
|
226 |
+
|
227 |
+
global $sd_data;
|
228 |
+
|
229 |
+
if (isset($result_json->photos)) {
|
230 |
+
|
231 |
+
$request_url = add_query_arg(
|
232 |
+
array(
|
233 |
+
'photoreference' => $result_json->photos[0]->photo_reference,
|
234 |
+
'key' => isset($sd_data['google_place_api_key']) ? $sd_data['google_place_api_key']:'',
|
235 |
+
'maxwidth' => '300',
|
236 |
+
'maxheight' => '300',
|
237 |
+
),
|
238 |
+
'https://maps.googleapis.com/maps/api/place/photo'
|
239 |
+
);
|
240 |
+
|
241 |
+
return $request_url;
|
242 |
+
|
243 |
+
}
|
244 |
+
return null;
|
245 |
+
}
|
google_review/google_review_widget.php
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Google Review Widget Class
|
4 |
+
*
|
5 |
+
* @author Magazine3
|
6 |
+
* @category Admin
|
7 |
+
* @path google_review/google_review_widget
|
8 |
+
* @Version 1.8
|
9 |
+
*/
|
10 |
+
|
11 |
+
// Exit if accessed directly.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
/*
|
15 |
+
* To change this license header, choose License Headers in Project Properties.
|
16 |
+
* To change this template file, choose Tools | Templates
|
17 |
+
* and open the template in the editor.
|
18 |
+
*/
|
19 |
+
/**
|
20 |
+
* Adds Saswp_Google_Review_Widget widget.
|
21 |
+
*/
|
22 |
+
class Saswp_Google_Review_Widget extends WP_Widget {
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Register widget with WordPress.
|
26 |
+
*/
|
27 |
+
function __construct() {
|
28 |
+
parent::__construct(
|
29 |
+
'saswp_google_review_widget', // Base ID
|
30 |
+
esc_html__( 'Schema Google Review', 'schema-and-structured-data-for-wp' ), // Name
|
31 |
+
array( 'description' => esc_html__( 'Widget to display google reviews', 'schema-and-structured-data-for-wp' ), ) // Args
|
32 |
+
);
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Front-end display of widget.
|
37 |
+
*
|
38 |
+
* @see WP_Widget::widget()
|
39 |
+
*
|
40 |
+
* @param array $args Widget arguments.
|
41 |
+
* @param array $instance Saved values from database.
|
42 |
+
*/
|
43 |
+
public function widget( $args, $instance ) {
|
44 |
+
|
45 |
+
echo html_entity_decode(esc_attr($args['before_widget']));
|
46 |
+
|
47 |
+
if ( ! class_exists('saswp_google_review')) {
|
48 |
+
require_once SASWP_DIR_NAME.'/google_review/google_review.php';
|
49 |
+
}
|
50 |
+
|
51 |
+
$object = new saswp_google_review();
|
52 |
+
$all_ads = $object->saswp_fetch_all_google_review_post();
|
53 |
+
$goolge_review_obj = new saswp_google_review();
|
54 |
+
|
55 |
+
foreach($all_ads as $ad){
|
56 |
+
|
57 |
+
if($ad->ID == $instance['g_review']){
|
58 |
+
|
59 |
+
$ad_code = $object->saswp_google_review_front_output($instance['g_review']);
|
60 |
+
$goolge_review = $goolge_review_obj->saswp_get_google_review_schema_markup($instance['g_review']);
|
61 |
+
|
62 |
+
if($goolge_review){
|
63 |
+
echo $ad_code . $goolge_review;
|
64 |
+
} else {
|
65 |
+
echo $ad_code;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
+
echo html_entity_decode(esc_attr($args['after_widget']));
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Back-end widget form.
|
74 |
+
*
|
75 |
+
* @see WP_Widget::form()
|
76 |
+
*
|
77 |
+
* @param array $instance Previously saved values from database.
|
78 |
+
*/
|
79 |
+
public function form( $instance ) {
|
80 |
+
|
81 |
+
$title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'Review Title', 'schema-and-structured-data-for-wp' );
|
82 |
+
$ads = ! empty( $instance['g_review'] ) ? $instance['g_review'] : esc_html__( 'review list to be display', 'schema-and-structured-data-for-wp' );?>
|
83 |
+
<p>
|
84 |
+
<label for="<?php echo esc_attr( $this->get_field_id( 'g_review' ) ); ?>">
|
85 |
+
<?php esc_attr_e( 'Places :', 'schema-and-structured-data-for-wp' ); ?></label><?php
|
86 |
+
|
87 |
+
$ads_select_html = '';
|
88 |
+
if ( ! class_exists('saswp_google_review')) {
|
89 |
+
require_once SASWP_DIR_NAME.'/google_review/google_review.php';
|
90 |
+
}
|
91 |
+
$object = new saswp_google_review();
|
92 |
+
$all_ads = $object->saswp_fetch_all_google_review_post();
|
93 |
+
foreach($all_ads as $ad){
|
94 |
+
$ads_select_html .= '<option '. esc_attr(selected( $ads, $ad->ID, false)).' value="'.esc_attr($ad->ID).'">'.esc_html__($ad->post_title, 'schema-and-structured-data-for-wp').'</option>';
|
95 |
+
}
|
96 |
+
echo '<select id="'.esc_attr( $this->get_field_id( 'g_review' )).'" name="'.esc_attr( $this->get_field_name( 'g_review' )).'">'
|
97 |
+
.$ads_select_html.
|
98 |
+
'</select>';?>
|
99 |
+
</p><?php
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Sanitize widget form values as they are saved.
|
104 |
+
*
|
105 |
+
* @see WP_Widget::update()
|
106 |
+
*
|
107 |
+
* @param array $new_instance Values just sent to be saved.
|
108 |
+
* @param array $old_instance Previously saved values from database.
|
109 |
+
*
|
110 |
+
* @return array Updated safe values to be saved.
|
111 |
+
*/
|
112 |
+
public function update( $new_instance, $old_instance ) {
|
113 |
+
|
114 |
+
$instance = array();
|
115 |
+
$instance['g_review'] = ( ! empty( $new_instance['g_review'] ) ) ? sanitize_text_field( $new_instance['g_review'] ) : '';
|
116 |
+
return $instance;
|
117 |
+
|
118 |
+
}
|
119 |
+
|
120 |
+
} // class Saswp_Google_Review_Widget
|
121 |
+
|
122 |
+
/**
|
123 |
+
* We are registering our widget here in wordpress
|
124 |
+
*/
|
125 |
+
function register_saswp_google_review_widget(){
|
126 |
+
register_widget('Saswp_Google_Review_Widget');
|
127 |
+
}
|
128 |
+
|
129 |
+
add_action('widgets_init', 'register_saswp_google_review_widget');
|
metaboxes/help.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* To change this license header, choose License Headers in Project Properties.
|
4 |
+
* To change this template file, choose Tools | Templates
|
5 |
+
* and open the template in the editor.
|
6 |
+
*/
|
7 |
+
add_action( 'add_meta_boxes', 'saswp_help_meta_box' );
|
8 |
+
function saswp_help_meta_box()
|
9 |
+
{
|
10 |
+
add_meta_box( 'saswp_help_meta_box_id',
|
11 |
+
esc_html__('Help', 'schema-and-structured-data-for-wp' ),
|
12 |
+
'saswp_help_meta_box_cb',
|
13 |
+
'saswp',
|
14 |
+
'advanced', 'low'
|
15 |
+
);
|
16 |
+
}
|
17 |
+
|
18 |
+
function saswp_help_meta_box_cb()
|
19 |
+
{
|
20 |
+
echo '<a href="admin.php?page=structured_data_options&tab=help">'.esc_html__('Need Help', 'schema-and-structured-data-for-wp').'</a>';
|
21 |
+
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: magazine3
|
|
3 |
Tags: Schema, Structured Data, Google Snippets, Rich Snippets, Schema.org, SEO, AMP
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.3
|
6 |
-
Stable tag: 1.9.16.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -118,6 +118,10 @@ You can contact us from [here](http://structured-data-for-wp.com/contact-us/)
|
|
118 |
|
119 |
== Changelog ==
|
120 |
|
|
|
|
|
|
|
|
|
121 |
= 1.9.16.1 (14 Nov 2019) =
|
122 |
|
123 |
* Fixed: Uncaught TypeError: $ is not a function #609
|
3 |
Tags: Schema, Structured Data, Google Snippets, Rich Snippets, Schema.org, SEO, AMP
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.3
|
6 |
+
Stable tag: 1.9.16.2
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
118 |
|
119 |
== Changelog ==
|
120 |
|
121 |
+
= 1.9.16.2 (29 Nov 2019) =
|
122 |
+
|
123 |
+
* Minor Fixes
|
124 |
+
|
125 |
= 1.9.16.1 (14 Nov 2019) =
|
126 |
|
127 |
* Fixed: Uncaught TypeError: $ is not a function #609
|
structured-data-for-wp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Schema & Structured Data for WP
|
4 |
Description: Schema & Structured Data adds Google Rich Snippets markup according to Schema.org guidelines to structure your site for SEO. (AMP Compatible)
|
5 |
-
Version: 1.9.16.
|
6 |
Text Domain: schema-and-structured-data-for-wp
|
7 |
Domain Path: /languages
|
8 |
Author: Magazine3
|
@@ -13,7 +13,7 @@ License: GPL2
|
|
13 |
// Exit if accessed directly.
|
14 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
15 |
|
16 |
-
define('SASWP_VERSION', '1.9.16.
|
17 |
define('SASWP_DIR_NAME_FILE', __FILE__ );
|
18 |
define('SASWP_DIR_NAME', dirname( __FILE__ ));
|
19 |
define('SASWP_DIR_URI', plugin_dir_url(__FILE__));
|
2 |
/*
|
3 |
Plugin Name: Schema & Structured Data for WP
|
4 |
Description: Schema & Structured Data adds Google Rich Snippets markup according to Schema.org guidelines to structure your site for SEO. (AMP Compatible)
|
5 |
+
Version: 1.9.16.2
|
6 |
Text Domain: schema-and-structured-data-for-wp
|
7 |
Domain Path: /languages
|
8 |
Author: Magazine3
|
13 |
// Exit if accessed directly.
|
14 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
15 |
|
16 |
+
define('SASWP_VERSION', '1.9.16.2');
|
17 |
define('SASWP_DIR_NAME_FILE', __FILE__ );
|
18 |
define('SASWP_DIR_NAME', dirname( __FILE__ ));
|
19 |
define('SASWP_DIR_URI', plugin_dir_url(__FILE__));
|