Version Description
- NEW Installation wizard!
- NEW Import redirects from Redirections plugin
- NEW Display and automatically accept the users consent on page load (not fully GDPR) for Google Analytics
- INFO Compatibility with LifterLMS plugin
- INFO Improve redirections export to CSV
- FIX Import/export redirects tool for query param
- FIX Links in SEO Tools
- FIX Post type archive link if no posts page set in Settings > Reading for HTML sitemap
Download this release
Release Info
Developer | rainbowgeek |
Plugin | ![]() |
Version | 3.5.8 |
Comparing to | |
See all releases |
Code changes from version 3.5.7 to 3.5.8
- assets/css/seopress-setup.css +1 -0
- assets/js/seopress-dashboard.js +20 -0
- inc/admin/admin-wizard.php +822 -0
- inc/admin/admin.php +69 -2
- inc/admin/adminbar.php +6 -0
- inc/functions/options-google-analytics.php +1 -1
- inc/functions/options-import-export.php +64 -4
- inc/functions/options-sitemap.php +1 -1
- inc/functions/options.php +12 -0
- inc/functions/sitemap/template-xml-sitemaps-single.php +1 -1
- languages/wp-seopress-fr_FR.mo +0 -0
- languages/wp-seopress-fr_FR.po +1071 -816
- languages/wp-seopress.mo +0 -0
- languages/wp-seopress.po +1022 -785
- languages/wp-seopress.pot +1022 -785
- readme.txt +89 -36
- seopress.php +11 -2
assets/css/seopress-setup.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@charset "UTF-8";body{margin:65px auto 24px;box-shadow:none;background:#f1f1f1;padding:0}.spinner{display: inline-block}.log {margin: 0;text-transform: uppercase;display: inline-block;vertical-align: middle;padding: 5px;color: rgba(19,191,17,1);font-style: italic}#seopress-logo{border:0;margin:0 0 24px;padding:0;text-align:center}#seopress-logo img{max-width:30%}.seopress-setup{text-align:center}.seopress-setup .select2-container{text-align:left;width:auto}.seopress-setup .hidden{display:none}.seopress-setup-content{box-shadow:0 1px 3px rgba(0,0,0,.13);padding:2em;margin:0 0 20px;background:#fff;overflow:hidden;zoom:1;text-align:left}.seopress-setup-content h1,.seopress-setup-content h2,.seopress-setup-content h3,.seopress-setup-content table{margin:0 0 20px;border:0;padding:0;color:#666;clear:none;font-weight:500}.seopress-setup-content p{margin:20px 0;font-size:1em;line-height:1.75em;color:#666}.seopress-setup-content table{font-size:1em;line-height:1.75em;color:#666}.seopress-setup-content a{color:#3842FF}.seopress-setup-content a:focus,.seopress-setup-content a:hover{color:#111}.seopress-setup-content .form-table th{width:35%;vertical-align:top;font-weight:400}.seopress-setup-content .form-table td{vertical-align:top}.seopress-setup-content .form-table td input,.seopress-setup-content .form-table td select{width:100%;box-sizing:border-box}.seopress-setup-content .form-table td input[size]{width:auto}.seopress-setup-content .form-table td .description{line-height:1.5em;display:block;margin-top:.25em;color:#999;font-style:italic}.seopress-setup-content .form-table td .input-checkbox,.seopress-setup-content .form-table td .input-radio{width:auto;box-sizing:inherit;padding:inherit;margin:0 .5em 0 0;box-shadow:none}.seopress-setup-content .form-table .section_title td{padding:0}.seopress-setup-content .form-table .section_title td h2,.seopress-setup-content .form-table .section_title td p{margin:12px 0 0}.seopress-setup-content .form-table td,.seopress-setup-content .form-table th{padding:12px 0;margin:0;border:0}.seopress-setup-content .form-table td:first-child,.seopress-setup-content .form-table th:first-child{padding-right:1em}.seopress-setup-content table.tax-rates{width:100%;font-size:.92em}.seopress-setup-content table.tax-rates th{padding:0;text-align:center;width:auto;vertical-align:middle}.seopress-setup-content table.tax-rates td{border:1px solid #f5f5f5;padding:6px;text-align:center;vertical-align:middle}.seopress-setup-content table.tax-rates td input{outline:0;border:0;padding:0;box-shadow:none;text-align:center;width:100%}.seopress-setup-content table.tax-rates td.sort{cursor:move;color:#ccc}.seopress-setup-content table.tax-rates td.sort::before{content:"\f333";font-family:dashicons}.seopress-setup-content table.tax-rates td.readonly{background:#f5f5f5}.seopress-setup-content table.tax-rates .add{padding:1em 0 0 1em;line-height:1em;font-size:1em;width:0;margin:6px 0 0;height:0;overflow:hidden;position:relative;display:inline-block}.seopress-setup-content table.tax-rates .add::before{content:"\f502";font-family:dashicons;position:absolute;left:0;top:0}.seopress-setup-content table.tax-rates .remove{padding:1em 0 0 1em;line-height:1em;font-size:1em;width:0;margin:0;height:0;overflow:hidden;position:relative;display:inline-block}.seopress-setup-content table.tax-rates .remove::before{content:"\f182";font-family:dashicons;position:absolute;left:0;top:0}.seopress-setup-content .seopress-setup-pages{width:100%;border-top:1px solid #eee}.seopress-setup-content .seopress-setup-pages thead th{display:none}.seopress-setup-content .seopress-setup-pages .page-name{width:30%;font-weight:700}.seopress-setup-content .seopress-setup-pages td,.seopress-setup-content .seopress-setup-pages th{padding:14px 0;border-bottom:1px solid #eee}.seopress-setup-content .seopress-setup-pages td:first-child,.seopress-setup-content .seopress-setup-pages th:first-child{padding-right:9px}.seopress-setup-content .seopress-setup-pages th{padding-top:0}.seopress-setup-content .seopress-setup-pages .page-options p{color:#777;margin:6px 0 0 24px;line-height:1.75em}.seopress-setup-content .seopress-setup-pages .page-options p input{vertical-align:middle;margin:1px 0 0;height:1.75em;width:1.75em;line-height:1.75em}.seopress-setup-content .seopress-setup-pages .page-options p label{line-height:1}@media screen and (max-width:782px){.seopress-setup-content .form-table tbody th{width:auto}}.seopress-setup-content .twitter-share-button{float:right}.seopress-setup-content .seopress-setup-next-steps{overflow:hidden;margin:0 0 24px;padding-bottom:2px}.seopress-setup-content .seopress-setup-next-steps h2{margin-bottom:12px}.seopress-setup-content .seopress-setup-next-steps .seopress-setup-next-steps-first{float:left;width:50%;box-sizing:border-box}.seopress-setup-content .seopress-setup-next-steps .seopress-setup-next-steps-last{float:right;width:50%;box-sizing:border-box}.seopress-setup-content .seopress-setup-next-steps ul{padding:0 2em 0 0;list-style:none outside;margin:0}.seopress-setup-content .seopress-setup-next-steps ul li a{display:block;padding:0 0 .75em}.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button{background-color:#f7f7f7;border-color:#ccc;color:#23282d;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #ccc;text-shadow:1px 0 1px #eee,0 1px 1px #eee;font-size:1em;height:auto;line-height:1.75em;margin:0 0 .75em;opacity:1;padding:1em;text-align:center}.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button:active,.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button:focus,.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button:hover{background:#f5f5f5;border-color:#aaa}.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button-primary{color:#fff;background-color:#bb77ae;border-color:#a36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #a36597;text-shadow:0 -1px 1px #a36597,1px 0 1px #a36597,0 1px 1px #a36597,-1px 0 1px #a36597}.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button-primary:active,.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button-primary:focus,.seopress-setup-content .seopress-setup-next-steps ul .setup-product a.button-primary:hover{color:#fff;background:#a36597;border-color:#a36597;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #a36597}.seopress-setup-content .seopress-setup-next-steps ul li a::before{color:#82878c;font:normal 20px/1 dashicons;speak:none;display:inline-block;padding:0 10px 0 0;top:1px;position:relative;text-decoration:none!important;vertical-align:top}.seopress-setup-content .seopress-setup-next-steps ul .learn-more a::before{content:"\f105"}.seopress-setup-content .seopress-setup-next-steps ul .video-walkthrough a::before{content:"\f126"}.seopress-setup-content .seopress-setup-next-steps ul .newsletter a::before{content:"\f465"}.seopress-setup-content .updated,.seopress-setup-content .seopress-newsletter{padding:24px;margin:0 0 24px;overflow:hidden;background:#f5f5f5}.seopress-setup-content .updated p,.seopress-setup-content .seopress-newsletter p{padding:0;margin:0 0 12px}.seopress-setup-content .updated form,.seopress-setup-content .updated p:last-child,.seopress-setup-content .seopress-newsletter form,.seopress-setup-content .seopress-tracker{margin:24px 0;border:1px solid #eee;padding:20px;border-radius:4px;overflow:hidden}.seopress-setup-content .seopress-tracker p{font-size:14px;line-height:1.5em}.seopress-setup-content .seopress-tracker .checkbox{line-height:24px;font-weight:500;font-size:1em;margin-top:0;margin-bottom:20px}.seopress-setup-content .checkbox input[type=checkbox]{opacity:0;position:absolute;left:-9999px}.seopress-setup-content .checkbox label{position:relative;display:inline-block;padding-left:28px}.seopress-setup-content .checkbox label::after,.seopress-setup-content .checkbox label::before{position:absolute;content:"";display:inline-block}.seopress-setup-content .checkbox label::before{height:16px;width:16px;left:0;top:3px;border:1px solid #aaa;background-color:#fff;border-radius:3px}.seopress-setup-content .checkbox label::after{height:5px;width:9px;border-left:2px solid;border-bottom:2px solid;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);left:4px;top:7px;color:#fff}.seopress-setup-content .checkbox input[type=checkbox]+label::after{content:none}.seopress-setup-content .checkbox input[type=checkbox]:checked+label::after{content:""}.seopress-setup-content .checkbox input[type=checkbox]:focus+label::before{outline:#3b99fc auto 5px}.seopress-setup-content .checkbox input[type=checkbox]:checked+label::before{background:#3842FF;border-color:#3842FF}.seopress-setup-steps{padding:0 0 24px;margin:0;list-style:none outside;overflow:hidden;color:#ccc;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex}.seopress-setup-steps li{width:100%;float:left;padding:0 0 .8em;margin:0;text-align:center;position:relative;border-bottom:4px solid #ccc;line-height:1.4em}.seopress-setup-steps li a{color:#3742ff;text-decoration:none;padding:1.5em;margin:-1.5em;position:relative;z-index:1}.seopress-setup-steps li a:focus,.seopress-setup-steps li a:hover{color:#111;text-decoration:underline}.seopress-setup-steps li::before{content:"";border:4px solid #ccc;border-radius:100%;width:4px;height:4px;position:absolute;bottom:0;left:50%;margin-left:-6px;margin-bottom:-8px;background:#fff}.seopress-setup-steps li.active{border-color: #3842FF;color: #3842FF;font-weight: 700}.seopress-setup-steps li.active::before{border-color:#3842FF}.seopress-setup-steps li.done{border-color:#3742ff;color:#3742ff}.seopress-setup-steps li.done::before{border-color:#3742ff;background:#3742ff}.seopress-setup .seopress-setup-actions{overflow:hidden;margin:20px 0 0;position:relative}.seopress-setup .seopress-setup-actions .button{font-size:1.25em;padding:.5em 1em;line-height:1em;margin-right:.5em;margin-bottom:2px;height:auto;border-radius:4px}.seopress-setup .seopress-setup-actions .button-primary{background-color: #3842FF;border-color: #3842FF;margin: 0;opacity: 1;transition: all 300ms linear}.seopress-setup .seopress-setup-actions .button-primary:active,.seopress-setup .seopress-setup-actions .button-primary:focus,.seopress-setup .seopress-setup-actions .button-primary:hover{background:none;border-color:#3842FF;color:#3842FF}.seopress-setup-content p:last-child{margin-bottom:0}.seopress-setup-content p.store-setup{margin-top:0}.seopress-setup-footer-links{font-size:.85em;color:#7b7b7b;margin:1.18em auto;display:inline-block;text-align:center}.seopress-wizard-storefront .seopress-wizard-storefront-intro{padding:40px 40px 0;background:#f5f5f5;text-align:center}.seopress-wizard-storefront .seopress-wizard-storefront-intro img{margin:40px 0 0 0;width:100%;display:block}.seopress-wizard-storefront .seopress-wizard-storefront-features{list-style:none outside;margin:0 0 20px;padding:0 0 0 30px;overflow:hidden}.seopress-wizard-storefront .seopress-wizard-storefront-feature{margin:0;padding:20px 30px 20px 2em;width:50%;box-sizing:border-box}.seopress-wizard-storefront .seopress-wizard-storefront-feature::before{margin-left:-2em;position:absolute}.seopress-wizard-storefront .seopress-wizard-storefront-feature.first{clear:both;float:left}.seopress-wizard-storefront .seopress-wizard-storefront-feature.last{float:right}.seopress-wizard-storefront .seopress-wizard-storefront-feature__bulletproof::before{content:"🔒"}.seopress-wizard-storefront .seopress-wizard-storefront-feature__mobile::before{content:"📱"}.seopress-wizard-storefront .seopress-wizard-storefront-feature__accessibility::before{content:"👓"}.seopress-wizard-storefront .seopress-wizard-storefront-feature__search::before{content:"🔍"}.seopress-wizard-storefront .seopress-wizard-storefront-feature__compatibility::before{content:"🔧"}.seopress-wizard-storefront .seopress-wizard-storefront-feature__extendable::before{content:"🎨"}.seopress-wizard-services{border:1px solid #eee;padding:1em;margin:0 0 1em;list-style:none outside;border-radius:4px;overflow:hidden}.seopress-wizard-services p{margin:0 0 1em 0;padding:0;font-size:1em;line-height:1.5em}.seopress-wizard-service-item,.seopress-wizard-services-list-toggle{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;padding:0;border-bottom:1px solid #eee;color:#666;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.seopress-wizard-service-item:last-child,.seopress-wizard-services-list-toggle:last-child{border-bottom:0}.seopress-wizard-service-item .payment-gateway-fee,.seopress-wizard-services-list-toggle .payment-gateway-fee{color:#a6a6a6}.seopress-wizard-service-item .seopress-wizard-service-name,.seopress-wizard-services-list-toggle .seopress-wizard-service-name{-webkit-flex-basis:0;flex-basis:0;min-width:160px;text-align:center;font-weight:700;padding:2em 0;-webkit-align-self:stretch;align-self:stretch;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline}.seopress-wizard-payment-gateway-form .seopress-wizard-service-item .seopress-wizard-service-name,.seopress-wizard-payment-gateway-form .seopress-wizard-services-list-toggle .seopress-wizard-service-name{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.seopress-wizard-service-item .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle .seopress-wizard-service-name img{max-width:75px}.seopress-wizard-service-item.stripe-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.stripe-logo .seopress-wizard-service-name img{padding:8px 0}.seopress-wizard-service-item.paypal-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.paypal-logo .seopress-wizard-service-name img{max-width:87px;padding:2px 0}.seopress-wizard-service-item.klarna-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.klarna-logo .seopress-wizard-service-name img{max-width:87px;padding:12px 0}.seopress-wizard-service-item.square-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.square-logo .seopress-wizard-service-name img{max-width:95px;padding:12px 0}.seopress-wizard-service-item.eway-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.eway-logo .seopress-wizard-service-name img{max-width:87px}.seopress-wizard-service-item.payfast-logo .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle.payfast-logo .seopress-wizard-service-name img{max-width:140px}.seopress-wizard-service-item .seopress-wizard-service-description,.seopress-wizard-services-list-toggle .seopress-wizard-service-description{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;padding:20px}.seopress-wizard-service-item .seopress-wizard-service-description p,.seopress-wizard-services-list-toggle .seopress-wizard-service-description p{margin-bottom:1em}.seopress-wizard-service-item .seopress-wizard-service-description p:last-child,.seopress-wizard-services-list-toggle .seopress-wizard-service-description p:last-child{margin-bottom:0}.seopress-wizard-service-item .seopress-wizard-service-description .seopress-wizard-service-settings-description,.seopress-wizard-services-list-toggle .seopress-wizard-service-description .seopress-wizard-service-settings-description{display:block;font-style:italic;color:#999}.seopress-wizard-service-item .seopress-wizard-service-enable,.seopress-wizard-services-list-toggle .seopress-wizard-service-enable{-webkit-flex-basis:0;flex-basis:0;min-width:75px;text-align:center;cursor:pointer;padding:2em 0;position:relative;max-height:1.5em;-webkit-align-self:flex-start;align-self:flex-start;-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.seopress-wizard-service-item .seopress-wizard-service-toggle,.seopress-wizard-services-list-toggle .seopress-wizard-service-toggle{height:16px;width:32px;border:2px solid #935687;background-color:#935687;display:inline-block;text-indent:-9999px;border-radius:10em;position:relative}.seopress-wizard-service-item .seopress-wizard-service-toggle input[type=checkbox],.seopress-wizard-services-list-toggle .seopress-wizard-service-toggle input[type=checkbox]{display:none}.seopress-wizard-service-item .seopress-wizard-service-toggle::before,.seopress-wizard-services-list-toggle .seopress-wizard-service-toggle::before{content:"";display:block;width:16px;height:16px;background:#fff;position:absolute;top:0;right:0;border-radius:100%}.seopress-wizard-service-item .seopress-wizard-service-toggle.disabled,.seopress-wizard-services-list-toggle .seopress-wizard-service-toggle.disabled{border-color:#999;background-color:#999}.seopress-wizard-service-item .seopress-wizard-service-toggle.disabled::before,.seopress-wizard-services-list-toggle .seopress-wizard-service-toggle.disabled::before{right:auto;left:0}.seopress-wizard-service-item .seopress-wizard-service-settings,.seopress-wizard-services-list-toggle .seopress-wizard-service-settings{display:none;margin-top:.75em;margin-bottom:0;cursor:default}.seopress-wizard-service-item .seopress-wizard-service-settings.hide,.seopress-wizard-services-list-toggle .seopress-wizard-service-settings.hide{display:none}.seopress-wizard-service-item.checked .seopress-wizard-service-settings,.seopress-wizard-services-list-toggle.checked .seopress-wizard-service-settings{display:inline-block}.seopress-wizard-service-item.checked .seopress-wizard-service-settings.hide,.seopress-wizard-services-list-toggle.checked .seopress-wizard-service-settings.hide{display:none}.seopress-wizard-service-item.closed,.seopress-wizard-services-list-toggle.closed{border-bottom:0}.seopress-wizard-services-list-toggle{cursor:pointer}.seopress-wizard-services-list-toggle .seopress-wizard-service-enable::before{content:"\f343";font-family:dashicons;visibility:initial;color:#666;font-size:25px;margin-top:-7px;margin-left:-5px;position:absolute;visibility:visible}.seopress-wizard-services-list-toggle.closed .seopress-wizard-service-enable::before{content:"\f347"}.seopress-wizard-services-list-toggle .seopress-wizard-service-enable input{visibility:hidden;position:relative}.seopress-wizard-services.manual .seopress-wizard-service-item{display:none}.seopress-wizard-services.shipping{margin:0}.seopress-wizard-services.shipping .seopress-wizard-service-name{font-weight:400;text-align:left;-webkit-box-align:center;-webkit-align-items:center;align-items:center;max-height:5em;padding:0}.seopress-wizard-services.shipping .seopress-wizard-service-item{padding-left:2em;padding-top:.67em}.seopress-wizard-services.shipping .seopress-wizard-service-item:first-child{border-bottom:0;padding-bottom:0;font-weight:700}.seopress-wizard-services.shipping .seopress-wizard-service-item:first-child .seopress-wizard-service-name{font-weight:700}.seopress-wizard-services.shipping .shipping-method-setting,.seopress-wizard-services.shipping .seopress-wizard-shipping-method-select{display:-webkit-box;display:-webkit-flex;display:flex}.seopress-wizard-services.shipping .shipping-method-setting.hide,.seopress-wizard-services.shipping .seopress-wizard-shipping-method-select.hide{display:none}.seopress-wizard-services.shipping .shipping-method-setting input,.seopress-wizard-services.shipping .seopress-wizard-shipping-method-dropdown{margin-right:2em;margin-bottom:1em}.seopress-wizard-services.shipping .shipping-method-setting input .select2,.seopress-wizard-services.shipping .seopress-wizard-shipping-method-dropdown .select2{min-width:130px}.seopress-wizard-services.shipping .seopress-wizard-service-description{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;color:#a6a6a6}.seopress-wizard-services.shipping .seopress-wizard-service-item:not(:first-child) .seopress-wizard-service-description{font-size:.92em;padding-bottom:10px}.seopress-wizard-services.shipping .shipping-method-setting input{width:95px;border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:28px;padding-left:8px;padding-right:24px;font-size:14px;color:#444;background-color:#fff;display:inline-block}.seopress-wizard-services.shipping .shipping-method-description,.seopress-wizard-services.shipping .shipping-method-setting .description{color:#7e7e7e;font-size:.9em}.seopress-wizard-services.shipping .shipping-method-setting input::-webkit-input-placeholder{color:#e1e1e1}.seopress-wizard-services.shipping .shipping-method-setting input:-ms-input-placeholder{color:#e1e1e1}.seopress-wizard-services.shipping .shipping-method-setting input::-ms-input-placeholder{color:#e1e1e1}.seopress-wizard-services.shipping .shipping-method-setting input::placeholder{color:#e1e1e1}.seopress-setup-shipping-units p{line-height:1.5em;font-size:13px;margin-bottom:.25em;text-align:center}.seopress-setup-shipping-units .seopress-setup-shipping-unit{margin-bottom:1.75em}.seopress-setup-shipping-units .seopress-setup-shipping-unit .select2{min-width:125px;top:-5px}.hide{display:none}.seopress-wizard-features{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;list-style:none;padding:0}.seopress-wizard-features .seopress-wizard-feature-item{-webkit-flex-basis:calc(50% - 4em - 3px);flex-basis:calc(50% - 4em - 3px);border:1px solid #eee;padding:2em}.seopress-wizard-features .seopress-wizard-feature-item:nth-child(1){border-radius:4px 0 0 0}.seopress-wizard-features .seopress-wizard-feature-item:nth-child(2){border-left:0;border-radius:0 4px 0 0}.seopress-wizard-features .seopress-wizard-feature-item:nth-child(3){border-top:0;border-radius:0 0 0 4px}.seopress-wizard-features .seopress-wizard-feature-item:nth-child(4){border-top:0;border-left:0;border-radius:0 0 4px 0}.seopress-wizard-features p.seopress-wizard-feature-description,.seopress-wizard-features p.seopress-wizard-feature-name{margin:0;line-height:1.5em}h3.jetpack-reasons{text-align:center;margin:3em 0 1em 0;font-size:14px}.jetpack-logo,.wcs-notice{display:block;margin:1.75em auto 2em auto;max-height:175px}.activate-splash .jetpack-logo{width:170px;margin-bottom:0}.activate-splash .wcs-notice{margin-top:1em;padding-left:57px}.step{text-align:center}.seopress-setup .seopress-setup-actions .button{text-shadow:none;font-weight:300;font-size:16px;padding:1em 2em;box-shadow:none;min-width:12em;min-width:auto;margin-top:10px}.seopress-setup .seopress-setup-actions .button:active,.seopress-setup .seopress-setup-actions .button:focus,.seopress-setup .seopress-setup-actions .button:hover{box-shadow:none}.seopress-setup .seopress-setup-actions .plugin-install-info{display:block;font-style:italic;color:#999;font-size:14px;line-height:1.5em;margin:5px 0}.seopress-setup .seopress-setup-actions .plugin-install-info>*{display:block}.seopress-setup .seopress-setup-actions .plugin-install-info .plugin-install-info-list-item::after{content:", "}.seopress-setup .seopress-setup-actions .plugin-install-info .plugin-install-info-list-item:last-of-type::after{content:". "}.seopress-setup .seopress-setup-actions .plugin-install-info a{white-space:nowrap}.seopress-setup .seopress-setup-actions .plugin-install-info a:not(:hover):not(:focus){color:inherit}.plugin-install-source{background:rgba(187,119,174,.15)}.plugin-install-source:not(.seopress-wizard-service-item){box-shadow:0 0 0 10px rgba(187,119,174,.15)}.location-prompt{color:#666;font-size:13px;font-weight:500;margin-bottom:.5em;margin-top:.85em;display:inline-block}.location-input{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:30px;width:calc(100% - 8px - 24px - 2px);padding-left:8px;padding-right:24px;font-size:16px;color:#444;background-color:#fff;display:inline-block}.location-input.dropdown{width:100%}.address-step .select2{min-width:100%}.store-address-container .city-and-postcode{display:-webkit-box;display:-webkit-flex;display:flex}.store-address-container .city-and-postcode div{-webkit-flex-basis:50%;flex-basis:50%;margin-right:1em}.store-address-container .city-and-postcode div:last-of-type{margin-right:0}.store-address-container .select2-container,.store-address-container input[type=text],.store-address-container select{margin-bottom:10px}.product-type-container{margin-top:14px;margin-bottom:1px}#seopress_sell_in_person{margin-left:0}.seopress-wizard-service-settings .payment-email-input{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:30px;padding:0 8px;font-size:14px;color:#444;background-color:#fff;display:inline-block}.seopress-wizard-service-settings .payment-email-input[disabled]{color:#aaa}.newsletter-form-container{display:-webkit-box;display:-webkit-flex;display:flex}.newsletter-form-container .newsletter-form-email{border:1px solid #aaa;border-color:#ddd;border-radius:4px;height:42px;padding:0 8px;font-size:16px;color:#666;background-color:#fff;display:inline-block;margin-right:6px;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.newsletter-form-container .newsletter-form-button-container{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0}.seopress-setup .seopress-setup-actions .button.newsletter-form-button{height:42px;padding:0 1em;margin:0}.seopress-wizard-next-steps{border:1px solid #eee;border-radius:4px;list-style:none;padding:0}.seopress-wizard-next-steps li{padding:0}.seopress-wizard-next-steps .seopress-wizard-next-step-item{display:-webkit-box;display:-webkit-flex;display:flex;border-top:1px solid #eee}.seopress-wizard-next-steps .seopress-wizard-next-step-item:first-child{border-top:0}.seopress-wizard-next-steps .seopress-wizard-next-step-description{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;margin:1.5em}.seopress-wizard-next-steps .seopress-wizard-next-step-action{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.seopress-wizard-next-steps .seopress-wizard-next-step-action .button{margin:1em 1.5em}.seopress-wizard-next-steps p.next-step-heading{margin:0;font-size:.95em;font-weight:400;font-variant:all-petite-caps}.seopress-wizard-next-steps p.next-step-extra-info{margin:0}.seopress-wizard-next-steps h3.next-step-description{margin:0;font-size:16px;font-weight:600}.seopress-wizard-next-steps .seopress-wizard-additional-steps{border-top:1px solid #eee}.seopress-wizard-next-steps .seopress-wizard-additional-steps .seopress-wizard-next-step-description{margin-bottom:0}.seopress-wizard-next-steps .seopress-wizard-additional-steps .seopress-setup-actions{margin:0 0 1.5em 0}.seopress-wizard-next-steps .seopress-wizard-additional-steps .seopress-setup-actions .button{font-size:15px;margin:1em 0 1em 1.5em}.seopress-wizard-next-steps .seopress-wizard-additional-steps .seopress-setup-actions .button::last-child{margin-right:1.5em}p.next-steps-help-text{color:#9f9f9f;padding:0 2em;text-align:center;font-size:.9em}p.jetpack-terms{font-size:.8em;text-align:center;max-width:480px;margin:0 auto;line-height:1.5em}.seopress-error{background:#ffe6e5;border-color:#ffc5c2;padding:1em;margin-bottom:1em}.seopress-error p{margin-top:0;margin-bottom:.5em;color:#444}.seopress-error a{color:#ff645c}.seopress-error .reconnect-reminder{font-size:.85em}.seopress-error .seopress-setup-actions .button{font-size:14px}.seopress-wizard-service-setting-ppec_paypal_reroute_requests,.seopress-wizard-service-setting-stripe_create_account{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.seopress-wizard-service-setting-ppec_paypal_reroute_requests .payment-checkbox-input,.seopress-wizard-service-setting-stripe_create_account .payment-checkbox-input{-webkit-box-ordinal-group:2;-webkit-order:1;order:1;margin-top:5px;margin-left:0;margin-right:0;width:1.5em}.seopress-wizard-service-setting-ppec_paypal_reroute_requests .ppec_paypal_reroute_requests,.seopress-wizard-service-setting-ppec_paypal_reroute_requests .stripe_create_account,.seopress-wizard-service-setting-stripe_create_account .ppec_paypal_reroute_requests,.seopress-wizard-service-setting-stripe_create_account .stripe_create_account{-webkit-box-ordinal-group:3;-webkit-order:2;order:2;margin-left:.3em}.seopress-wizard-service-setting-ppec_paypal_email,.seopress-wizard-service-setting-stripe_email{margin-top:.75em;margin-left:1.5em}.seopress-wizard-service-setting-ppec_paypal_email label.ppec_paypal_email,.seopress-wizard-service-setting-ppec_paypal_email label.stripe_email,.seopress-wizard-service-setting-stripe_email label.ppec_paypal_email,.seopress-wizard-service-setting-stripe_email label.stripe_email{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.seopress-wizard-service-setting-ppec_paypal_email input.payment-email-input,.seopress-wizard-service-setting-stripe_email input.payment-email-input{box-sizing:border-box;margin-bottom:.5em;width:100%;height:32px}.seopress-setup-content .recommended-step {padding: 0 2.5em;text-align: left;display: inline-block;width: 100%;}.seopress-setup-content .recommended-step a{text-decoration: none;}.seopress-setup-content .recommended-item{list-style:none;margin: 1rem 0}.seopress-setup-content .recommended-item:last-child label{margin-bottom:0}.seopress-setup-content .recommended-item label{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-bottom:1.5em}.seopress-setup-content .recommended-item label::after,.seopress-setup-content .recommended-item label::before{top:auto}.seopress-setup-content .recommended-item label::after{margin-top:-1.5px}.seopress-setup-content .recommended-item .recommended-item-icon{border:1px solid #fff;border-radius:7px;height:3.5em;margin-right:1em;margin-left:4px}.seopress-setup-content .recommended-item .recommended-item-icon.recommended-item-icon-storefront_theme{background-color:#f4a224;max-height:3em;max-width:3em;padding:.25em}.seopress-setup-content .recommended-item .recommended-item-icon.recommended-item-icon-automated_taxes{background-color:#d0011b;max-height:1.75em;padding:.875em}.seopress-setup-content .recommended-item .recommended-item-icon.recommended-item-icon-mailchimp{background-color:#ffe01b;height:2em;padding:.75em}.seopress-setup-content .recommended-item .recommended-item-icon.recommended-item-icon-seopress_services{background-color:#f0f0f0;max-height:1.5em;padding:1.3em .7em}.seopress-setup-content .recommended-item .recommended-item-icon.recommended-item-icon-shipstation{background-color:#f0f0f0;padding:.3em}.seopress-setup-content .recommended-item .recommended-item-description-container h3{font-size:15px;font-weight:700;letter-spacing:.5px;margin-bottom:0}.seopress-setup-content .recommended-item .recommended-item-description-container p{margin-top:0;line-height:1.5em}.seopress-wizard-service-info{padding:1em 2em;background-color:#fafafa}.help_tip{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.seopress-setup #tiptip_content{background:#5f6973}.seopress-setup #tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#5f6973}.seopress-setup-shipping-recommended{border-bottom:1px solid #eee;margin-top:0;padding:30px 0}@media only screen and (max-width:400px){#seopress-logo img{max-width:80%}.seopress-setup-steps{display:none}.store-address-container .city-and-postcode{display:block}.store-address-container .city-and-postcode div{margin-right:0}.seopress-wizard-service-item,.seopress-wizard-services-list-toggle{-webkit-flex-wrap:wrap;flex-wrap:wrap}.seopress-wizard-service-item .seopress-wizard-service-enable,.seopress-wizard-services-list-toggle .seopress-wizard-service-enable{-webkit-box-ordinal-group:3;-webkit-order:2;order:2;padding:20px 0 0}.seopress-wizard-service-item .seopress-wizard-service-description,.seopress-wizard-services-list-toggle .seopress-wizard-service-description{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.seopress-wizard-service-item .seopress-wizard-service-name,.seopress-wizard-services-list-toggle .seopress-wizard-service-name{padding:20px 20px 0;text-align:left;-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;justify-content:space-between!important}.seopress-wizard-service-item .seopress-wizard-service-name img,.seopress-wizard-services-list-toggle .seopress-wizard-service-name img{margin:0}.newsletter-form-container{display:block}.newsletter-form-container .newsletter-form-email{display:block;box-sizing:border-box;width:100%;margin-bottom:10px}.newsletter-form-container .button.newsletter-form-button{float:left}.seopress-wizard-next-steps .seopress-wizard-next-step-item{-webkit-flex-wrap:wrap;flex-wrap:wrap}.seopress-wizard-next-steps .seopress-wizard-next-step-item .seopress-wizard-next-step-description{margin-bottom:0}.seopress-wizard-next-steps .seopress-wizard-next-step-item .seopress-wizard-next-step-action p{margin:0}}
|
assets/js/seopress-dashboard.js
CHANGED
@@ -5,6 +5,26 @@ jQuery(document).ready(function(){
|
|
5 |
}
|
6 |
|
7 |
//Hide notices
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
//**Divide comments
|
9 |
jQuery('#notice-divide-comments').on('click', function() {
|
10 |
jQuery('#notice-divide-comments').attr('data-notice', jQuery('#notice-divide-comments').attr('data-notice') == '1' ? '0' : '1');
|
5 |
}
|
6 |
|
7 |
//Hide notices
|
8 |
+
//**Wizard
|
9 |
+
jQuery('#notice-wizard').on('click', function() {
|
10 |
+
jQuery('#notice-wizard').attr('data-notice', jQuery('#notice-wizard').attr('data-notice') == '1' ? '0' : '1');
|
11 |
+
jQuery.ajax({
|
12 |
+
method : 'POST',
|
13 |
+
url : seopressAjaxHideNotices.seopress_hide_notices,
|
14 |
+
data : {
|
15 |
+
action: 'seopress_hide_notices',
|
16 |
+
notice: 'notice-wizard',
|
17 |
+
notice_value: jQuery('#notice-wizard').attr('data-notice'),
|
18 |
+
_ajax_nonce: seopressAjaxHideNotices.seopress_nonce,
|
19 |
+
},
|
20 |
+
success : function( data ) {
|
21 |
+
jQuery( '#seopress-notice-save' ).css('display', 'block');
|
22 |
+
jQuery( '#seopress-notice-save .html' ).html('Notice successfully removed');
|
23 |
+
jQuery( '#notice-wizard-alert' ).fadeOut();
|
24 |
+
jQuery( '#seopress-notice-save' ).delay(3500).fadeOut();
|
25 |
+
},
|
26 |
+
});
|
27 |
+
});
|
28 |
//**Divide comments
|
29 |
jQuery('#notice-divide-comments').on('click', function() {
|
30 |
jQuery('#notice-divide-comments').attr('data-notice', jQuery('#notice-divide-comments').attr('data-notice') == '1' ? '0' : '1');
|
inc/admin/admin-wizard.php
ADDED
@@ -0,0 +1,822 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Setup Wizard Class
|
4 |
+
*
|
5 |
+
* Takes new users through some basic steps to setup SEOPress.
|
6 |
+
*
|
7 |
+
* @package SEOPress/inc/admin
|
8 |
+
* @version 3.5.8
|
9 |
+
*/
|
10 |
+
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit;
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* SEOPRESS_Admin_Setup_Wizard class.
|
17 |
+
*/
|
18 |
+
class SEOPRESS_Admin_Setup_Wizard {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Current step
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
private $step = '';
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Steps for the setup wizard
|
29 |
+
*
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
private $steps = array();
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Hook in tabs.
|
36 |
+
*/
|
37 |
+
public function __construct() {
|
38 |
+
if ( apply_filters( 'seopress_enable_setup_wizard', true ) && current_user_can( 'manage_options' ) ) {
|
39 |
+
add_action( 'admin_menu', array( $this, 'admin_menus' ) );
|
40 |
+
add_action( 'admin_init', array( $this, 'setup_wizard' ) );
|
41 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Add admin menus/screens.
|
47 |
+
*/
|
48 |
+
public function admin_menus() {
|
49 |
+
add_dashboard_page( '', '', 'manage_options', 'seopress-setup', '' );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Register/enqueue scripts and styles for the Setup Wizard.
|
54 |
+
*
|
55 |
+
* Hooked onto 'admin_enqueue_scripts'.
|
56 |
+
*/
|
57 |
+
public function enqueue_scripts() {
|
58 |
+
wp_enqueue_style( 'seopress-setup', plugins_url( 'assets/css/seopress-setup.css', dirname(dirname(__FILE__))), array( 'dashicons', 'install' ), SEOPRESS_VERSION );
|
59 |
+
wp_register_script( 'seopress-migrate-ajax', plugins_url( 'assets/js/seopress-yoast-migrate.js', dirname(dirname(__FILE__))), array( 'jquery' ), SEOPRESS_VERSION, true );
|
60 |
+
|
61 |
+
$seopress_migrate = array(
|
62 |
+
'seopress_aio_migrate' => array(
|
63 |
+
'seopress_nonce' => wp_create_nonce('seopress_aio_migrate_nonce'),
|
64 |
+
'seopress_aio_migration' => admin_url( 'admin-ajax.php'),
|
65 |
+
),
|
66 |
+
'seopress_yoast_migrate' => array(
|
67 |
+
'seopress_nonce' => wp_create_nonce('seopress_yoast_migrate_nonce'),
|
68 |
+
'seopress_yoast_migration' => admin_url( 'admin-ajax.php'),
|
69 |
+
),
|
70 |
+
'seopress_seo_framework_migrate' => array(
|
71 |
+
'seopress_nonce' => wp_create_nonce('seopress_seo_framework_migrate_nonce'),
|
72 |
+
'seopress_seo_framework_migration' => admin_url( 'admin-ajax.php'),
|
73 |
+
),
|
74 |
+
'seopress_rk_migrate' => array(
|
75 |
+
'seopress_nonce' => wp_create_nonce('seopress_rk_migrate_nonce'),
|
76 |
+
'seopress_rk_migration' => admin_url( 'admin-ajax.php'),
|
77 |
+
),
|
78 |
+
);
|
79 |
+
wp_localize_script( 'seopress-migrate-ajax', 'seopressAjaxMigrate', $seopress_migrate );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Show the setup wizard.
|
84 |
+
*/
|
85 |
+
public function setup_wizard() {
|
86 |
+
if ( empty( $_GET['page'] ) || 'seopress-setup' !== $_GET['page'] ) {
|
87 |
+
return;
|
88 |
+
}
|
89 |
+
$default_steps = array(
|
90 |
+
'import_settings' => array(
|
91 |
+
'name' => __( 'Import SEO settings', 'wp-seopress' ),
|
92 |
+
'view' => array( $this, 'seopress_setup_import_settings' ),
|
93 |
+
'handler' => array( $this, 'seopress_setup_import_settings_save' ),
|
94 |
+
),
|
95 |
+
'site' => array(
|
96 |
+
'name' => __( 'Your site', 'wp-seopress' ),
|
97 |
+
'view' => array( $this, 'seopress_setup_site' ),
|
98 |
+
'handler' => array( $this, 'seopress_setup_site_save' ),
|
99 |
+
),
|
100 |
+
'indexing' => array(
|
101 |
+
'name' => __( 'Indexing', 'wp-seopress' ),
|
102 |
+
'view' => array( $this, 'seopress_setup_indexing' ),
|
103 |
+
'handler' => array( $this, 'seopress_setup_indexing_save' ),
|
104 |
+
),
|
105 |
+
'advanced' => array(
|
106 |
+
'name' => __( 'Advanced options', 'wp-seopress' ),
|
107 |
+
'view' => array( $this, 'seopress_setup_advanced' ),
|
108 |
+
'handler' => array( $this, 'seopress_setup_advanced_save' ),
|
109 |
+
),
|
110 |
+
'ready' => array(
|
111 |
+
'name' => __( 'Ready!', 'wp-seopress' ),
|
112 |
+
'view' => array( $this, 'seopress_setup_ready' ),
|
113 |
+
'handler' => '',
|
114 |
+
),
|
115 |
+
);
|
116 |
+
|
117 |
+
$this->steps = apply_filters( 'seopress_setup_wizard_steps', $default_steps );
|
118 |
+
$this->step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : current( array_keys( $this->steps ) );
|
119 |
+
|
120 |
+
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) {
|
121 |
+
call_user_func( $this->steps[ $this->step ]['handler'], $this );
|
122 |
+
}
|
123 |
+
|
124 |
+
ob_start();
|
125 |
+
$this->setup_wizard_header();
|
126 |
+
$this->setup_wizard_steps();
|
127 |
+
$this->setup_wizard_content();
|
128 |
+
$this->setup_wizard_footer();
|
129 |
+
exit;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Get the URL for the next step's screen.
|
134 |
+
*
|
135 |
+
* @param string $step slug (default: current step).
|
136 |
+
* @return string URL for next step if a next step exists.
|
137 |
+
* Admin URL if it's the last step.
|
138 |
+
* Empty string on failure.
|
139 |
+
* @since 3.5.8
|
140 |
+
*/
|
141 |
+
public function get_next_step_link( $step = '' ) {
|
142 |
+
if ( ! $step ) {
|
143 |
+
$step = $this->step;
|
144 |
+
}
|
145 |
+
|
146 |
+
$keys = array_keys( $this->steps );
|
147 |
+
if ( end( $keys ) === $step ) {
|
148 |
+
return admin_url();
|
149 |
+
}
|
150 |
+
|
151 |
+
$step_index = array_search( $step, $keys, true );
|
152 |
+
if ( false === $step_index ) {
|
153 |
+
return '';
|
154 |
+
}
|
155 |
+
|
156 |
+
return add_query_arg( 'step', $keys[ $step_index + 1 ], remove_query_arg( 'activate_error' ) );
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Setup Wizard Header.
|
161 |
+
*/
|
162 |
+
public function setup_wizard_header() {
|
163 |
+
set_current_screen();
|
164 |
+
?>
|
165 |
+
<!DOCTYPE html>
|
166 |
+
<html <?php language_attributes(); ?>>
|
167 |
+
<head>
|
168 |
+
<meta name="viewport" content="width=device-width" />
|
169 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
170 |
+
<title><?php esc_html_e( 'SEOPress › Setup Wizard', 'wp-seopress' ); ?></title>
|
171 |
+
<?php do_action( 'admin_enqueue_scripts' ); ?>
|
172 |
+
<?php wp_print_scripts( 'seopress-migrate-ajax' ); ?>
|
173 |
+
<?php do_action( 'admin_print_styles' ); ?>
|
174 |
+
<?php do_action( 'admin_head' ); ?>
|
175 |
+
</head>
|
176 |
+
<body class="seopress-setup wp-core-ui">
|
177 |
+
<h1 id="seopress-logo"><a href="https://www.seopress.org/" target="_blank"><img src="<?php echo plugins_url('assets/img/logo-seopress.svg', dirname(dirname(__FILE__))); ?>" alt="SEOPress" /></a></h1>
|
178 |
+
<?php
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Setup Wizard Footer.
|
183 |
+
*/
|
184 |
+
public function setup_wizard_footer() {
|
185 |
+
?>
|
186 |
+
<?php if ( 'import_settings' === $this->step ) : ?>
|
187 |
+
<a class="seopress-setup-footer-links" href="<?php echo esc_url( admin_url() ); ?>"><?php esc_html_e( 'Not right now', 'wp-seopress' ); ?></a>
|
188 |
+
<?php elseif ( 'site' === $this->step || 'indexing' === $this->step || 'advanced' === $this->step ) : ?>
|
189 |
+
<a class="seopress-setup-footer-links" href="<?php echo esc_url( $this->get_next_step_link() ); ?>"><?php esc_html_e( 'Skip this step', 'wp-seopress' ); ?></a>
|
190 |
+
<?php endif; ?>
|
191 |
+
<?php do_action( 'seopress_setup_footer' ); ?>
|
192 |
+
</body>
|
193 |
+
</html>
|
194 |
+
<?php
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Output the steps.
|
199 |
+
*/
|
200 |
+
public function setup_wizard_steps() {
|
201 |
+
$output_steps = $this->steps;
|
202 |
+
?>
|
203 |
+
<ol class="seopress-setup-steps">
|
204 |
+
<?php
|
205 |
+
foreach ( $output_steps as $step_key => $step ) {
|
206 |
+
$is_completed = array_search( $this->step, array_keys( $this->steps ), true ) > array_search( $step_key, array_keys( $this->steps ), true );
|
207 |
+
|
208 |
+
if ( $step_key === $this->step ) {
|
209 |
+
?>
|
210 |
+
<li class="active"><?php echo esc_html( $step['name'] ); ?></li>
|
211 |
+
<?php
|
212 |
+
} elseif ( $is_completed ) {
|
213 |
+
?>
|
214 |
+
<li class="done">
|
215 |
+
<a href="<?php echo esc_url( add_query_arg( 'step', $step_key, remove_query_arg( 'activate_error' ) ) ); ?>"><?php echo esc_html( $step['name'] ); ?></a>
|
216 |
+
</li>
|
217 |
+
<?php
|
218 |
+
} else {
|
219 |
+
?>
|
220 |
+
<li><?php echo esc_html( $step['name'] ); ?></li>
|
221 |
+
<?php
|
222 |
+
}
|
223 |
+
}
|
224 |
+
?>
|
225 |
+
</ol>
|
226 |
+
<?php
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Output the content for the current step.
|
231 |
+
*/
|
232 |
+
public function setup_wizard_content() {
|
233 |
+
echo '<div class="seopress-setup-content">';
|
234 |
+
if ( ! empty( $this->steps[ $this->step ]['view'] ) ) {
|
235 |
+
call_user_func( $this->steps[ $this->step ]['view'], $this );
|
236 |
+
}
|
237 |
+
echo '</div>';
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Init "Step 1: Import SEO settings".
|
242 |
+
*/
|
243 |
+
public function seopress_setup_import_settings() {
|
244 |
+
?>
|
245 |
+
<form method="post" class="address-step">
|
246 |
+
<?php wp_nonce_field( 'seopress-setup' ); ?>
|
247 |
+
<p class="store-setup"><?php esc_html_e( 'The following wizard will help you configure SEOPress and get you started quickly.', 'wp-seopress' ); ?></p>
|
248 |
+
|
249 |
+
<div class="store-address-container">
|
250 |
+
<!-- Yoast import tool -->
|
251 |
+
<div id="yoast-migration-tool" class="postbox section-tool seopress-wizard-services">
|
252 |
+
<h3><span><?php _e( 'Import posts and terms metadata from Yoast', 'wp-seopress' ); ?></span></h3>
|
253 |
+
<p><?php _e( 'By clicking Migrate, we\'ll import:', 'wp-seopress' ); ?></p>
|
254 |
+
<ul>
|
255 |
+
<li><?php _e('Title tags','wp-seopress'); ?></li>
|
256 |
+
<li><?php _e('Meta description','wp-seopress'); ?></li>
|
257 |
+
<li><?php _e('Facebook Open Graph tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
258 |
+
<li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
259 |
+
<li><?php _e('Meta Robots (noindex, nofollow...)','wp-seopress'); ?></li>
|
260 |
+
<li><?php _e('Canonical URL','wp-seopress'); ?></li>
|
261 |
+
<li><?php _e('Focus keywords','wp-seopress'); ?></li>
|
262 |
+
</ul>
|
263 |
+
<p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete / update all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Yoast datas.', 'wp-seopress' ); ?></p>
|
264 |
+
<button id="seopress-yoast-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
|
265 |
+
<span class="spinner"></span>
|
266 |
+
<div class="log"></div>
|
267 |
+
</div><!-- .postbox -->
|
268 |
+
|
269 |
+
<!-- All In One import tool -->
|
270 |
+
<div id="aio-migration-tool" class="postbox section-tool seopress-wizard-services">
|
271 |
+
<h3><span><?php _e( 'Import posts and terms metadata from All In One SEO', 'wp-seopress' ); ?></span></h3>
|
272 |
+
<p><?php _e( 'By clicking Migrate, we\'ll import:', 'wp-seopress' ); ?></p>
|
273 |
+
<ul>
|
274 |
+
<li><?php _e('Title tags','wp-seopress'); ?></li>
|
275 |
+
<li><?php _e('Meta description','wp-seopress'); ?></li>
|
276 |
+
<li><?php _e('Facebook Open Graph tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
277 |
+
<li><?php _e('Twitter image thumbnail','wp-seopress'); ?></li>
|
278 |
+
<li><?php _e('Meta Robots (noindex, nofollow)','wp-seopress'); ?></li>
|
279 |
+
</ul>
|
280 |
+
<p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any AIO datas.', 'wp-seopress' ); ?></p>
|
281 |
+
<button id="seopress-aio-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
|
282 |
+
<span class="spinner"></span>
|
283 |
+
<div class="log"></div>
|
284 |
+
</div><!-- .postbox -->
|
285 |
+
|
286 |
+
<!-- SEO Framework import tool -->
|
287 |
+
<div id="seo-framework-migration-tool" class="postbox section-tool seopress-wizard-services">
|
288 |
+
<h3><span><?php _e( 'Import posts and terms metadata from The SEO Framework', 'wp-seopress' ); ?></span></h3>
|
289 |
+
<p><?php _e( 'By clicking Migrate, we\'ll import:', 'wp-seopress' ); ?></p>
|
290 |
+
<ul>
|
291 |
+
<li><?php _e('Title tags','wp-seopress'); ?></li>
|
292 |
+
<li><?php _e('Meta description','wp-seopress'); ?></li>
|
293 |
+
<li><?php _e('Facebook Open Graph tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
294 |
+
<li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
295 |
+
<li><?php _e('Meta Robots (noindex, nofollow, noarchive)','wp-seopress'); ?></li>
|
296 |
+
<li><?php _e('Canonical URL','wp-seopress'); ?></li>
|
297 |
+
<li><?php _e('Redirect URL','wp-seopress'); ?></li>
|
298 |
+
</ul>
|
299 |
+
<p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Framework datas.', 'wp-seopress' ); ?></p>
|
300 |
+
<button id="seopress-seo-framework-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
|
301 |
+
<span class="spinner"></span>
|
302 |
+
<div class="log"></div>
|
303 |
+
</div><!-- .postbox -->
|
304 |
+
|
305 |
+
<!-- RK import tool -->
|
306 |
+
<div id="rk-migration-tool" class="postbox section-tool seopress-wizard-services">
|
307 |
+
<h3><span><?php _e( 'Import posts and terms metadata from Rank Math', 'wp-seopress' ); ?></span></h3>
|
308 |
+
<p><?php _e( 'By clicking Migrate, we\'ll import:', 'wp-seopress' ); ?></p>
|
309 |
+
<ul>
|
310 |
+
<li><?php _e('Title tags','wp-seopress'); ?></li>
|
311 |
+
<li><?php _e('Meta description','wp-seopress'); ?></li>
|
312 |
+
<li><?php _e('Facebook Open Graph tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
313 |
+
<li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
|
314 |
+
<li><?php _e('Meta Robots (noindex, nofollow, noarchive, noimageindex)','wp-seopress'); ?></li>
|
315 |
+
<li><?php _e('Canonical URL','wp-seopress'); ?></li>
|
316 |
+
<li><?php _e('Focus keywords','wp-seopress'); ?></li>
|
317 |
+
</ul>
|
318 |
+
<p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math datas.', 'wp-seopress' ); ?></p>
|
319 |
+
<button id="seopress-rk-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
|
320 |
+
<span class="spinner"></span>
|
321 |
+
<div class="log"></div>
|
322 |
+
</div><!-- .postbox -->
|
323 |
+
</div>
|
324 |
+
|
325 |
+
<p class="seopress-setup-actions step">
|
326 |
+
<button type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( "Next step", 'wp-seopress' ); ?>" name="save_step"><?php esc_html_e( "Next step", 'wp-seopress' ); ?></button>
|
327 |
+
<?php wp_nonce_field( 'seopress-setup' ); ?>
|
328 |
+
</p>
|
329 |
+
</form>
|
330 |
+
<?php
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Save step 1 settings.
|
335 |
+
*/
|
336 |
+
public function seopress_setup_import_settings_save() {
|
337 |
+
check_admin_referer( 'seopress-setup' );
|
338 |
+
wp_safe_redirect( esc_url_raw( $this->get_next_step_link() ) );
|
339 |
+
exit;
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Init "Step 2: Your site".
|
344 |
+
*/
|
345 |
+
public function seopress_setup_site() {
|
346 |
+
$seopress_titles_option = get_option( 'seopress_titles_option_name' );
|
347 |
+
$seopress_social_option = get_option( 'seopress_social_option_name' );
|
348 |
+
|
349 |
+
$site_sep = isset($seopress_titles_option['seopress_titles_sep']) ? $seopress_titles_option['seopress_titles_sep'] : NULL;
|
350 |
+
$site_title = isset($seopress_titles_option['seopress_titles_home_site_title']) ? $seopress_titles_option['seopress_titles_home_site_title'] : NULL;
|
351 |
+
$knowledge_type = isset($seopress_social_option['seopress_social_knowledge_type']) ? $seopress_social_option['seopress_social_knowledge_type'] : NULL;
|
352 |
+
$knowledge_name = isset($seopress_social_option['seopress_social_knowledge_name']) ? $seopress_social_option['seopress_social_knowledge_name'] : NULL;
|
353 |
+
$knowledge_img = isset($seopress_social_option['seopress_social_knowledge_img']) ? $seopress_social_option['seopress_social_knowledge_img'] : NULL;
|
354 |
+
$knowledge_fb = isset($seopress_social_option['seopress_social_accounts_facebook']) ? $seopress_social_option['seopress_social_accounts_facebook'] : NULL;
|
355 |
+
$knowledge_tw = isset($seopress_social_option['seopress_social_accounts_twitter']) ? $seopress_social_option['seopress_social_accounts_twitter'] : NULL;
|
356 |
+
$knowledge_pin = isset($seopress_social_option['seopress_social_accounts_pinterest']) ? $seopress_social_option['seopress_social_accounts_pinterest'] : NULL;
|
357 |
+
$knowledge_insta = isset($seopress_social_option['seopress_social_accounts_instagram']) ? $seopress_social_option['seopress_social_accounts_instagram'] : NULL;
|
358 |
+
$knowledge_yt = isset($seopress_social_option['seopress_social_accounts_youtube']) ? $seopress_social_option['seopress_social_accounts_youtube'] : NULL;
|
359 |
+
$knowledge_li = isset($seopress_social_option['seopress_social_accounts_linkedin']) ? $seopress_social_option['seopress_social_accounts_linkedin'] : NULL;
|
360 |
+
$knowledge_mys = isset($seopress_social_option['seopress_social_accounts_myspace']) ? $seopress_social_option['seopress_social_accounts_myspace'] : NULL;
|
361 |
+
$knowledge_sound = isset($seopress_social_option['seopress_social_accounts_soundcloud']) ? $seopress_social_option['seopress_social_accounts_soundcloud'] : NULL;
|
362 |
+
$knowledge_tu = isset($seopress_social_option['seopress_social_accounts_tumblr']) ? $seopress_social_option['seopress_social_accounts_tumblr'] : NULL;
|
363 |
+
?>
|
364 |
+
|
365 |
+
<h1><?php esc_html_e( 'Your site', 'wp-seopress' ); ?></h1>
|
366 |
+
<form method="post">
|
367 |
+
<p><?php esc_html_e( 'Fill out the fields below to configure general settings needed to build title tags and knowledge graph for Google.', 'wp-seopress' ); ?></p>
|
368 |
+
|
369 |
+
<label class="location-prompt" for="site_sep"><?php esc_html_e( 'Separator', 'wp-seopress' ); ?></label>
|
370 |
+
<input type="text" id="site_sep" class="location-input" name="site_sep" placeholder="<?php esc_html_e('eg: |', 'wp-seopress'); ?>" required value="<?php echo $site_sep; ?>" />
|
371 |
+
|
372 |
+
<label class="location-prompt" for="site_title"><?php esc_html_e( 'Site title', 'wp-seopress' ); ?></label>
|
373 |
+
<input type="text" id="site_title" class="location-input" name="site_title" placeholder="<?php esc_html_e('eg: My super website', 'wp-seopress'); ?>" required value="<?php echo $site_title; ?>" />
|
374 |
+
|
375 |
+
<label class="location-prompt" for="knowledge_type"><?php esc_html_e('Person or organization','wp-seopress'); ?></label>
|
376 |
+
<?php
|
377 |
+
echo '<select id="knowledge_type" name="knowledge_type" data-placeholder="'.esc_attr__( 'Choose a knowledge type', 'wp-seopress' ).'" class="location-input wc-enhanced-select dropdown">';
|
378 |
+
echo ' <option ';
|
379 |
+
if ('None' == $knowledge_type) echo 'selected="selected"';
|
380 |
+
echo ' value="none">'. __("None (will disable this feature)","wp-seopress") .'</option>';
|
381 |
+
echo ' <option ';
|
382 |
+
if ('Person' == $knowledge_type) echo 'selected="selected"';
|
383 |
+
echo ' value="Person">'. __("Person","wp-seopress") .'</option>';
|
384 |
+
echo '<option ';
|
385 |
+
if ('Organization' == $knowledge_type) echo 'selected="selected"';
|
386 |
+
echo ' value="Organization">'. __("Organization","wp-seopress") .'</option>';
|
387 |
+
echo '</select>';
|
388 |
+
?>
|
389 |
+
|
390 |
+
<label class="location-prompt" for="knowledge_name"><?php esc_html_e( 'Your name/organization', 'wp-seopress' ); ?></label>
|
391 |
+
<input type="text" id="knowledge_name" class="location-input" name="knowledge_name" placeholder="<?php esc_html_e('eg: SEOPress', 'wp-seopress'); ?>" value="<?php echo $knowledge_name; ?>" />
|
392 |
+
|
393 |
+
<label class="location-prompt" for="knowledge_img"><?php esc_html_e( 'Your photo/organization logo', 'wp-seopress' ); ?></label>
|
394 |
+
<input type="text" id="knowledge_img" class="location-input" name="knowledge_img" placeholder="<?php esc_html_e('eg: https://www.example.com/logo.png', 'wp-seopress'); ?>" value="<?php echo $knowledge_img; ?>" />
|
395 |
+
|
396 |
+
<label class="location-prompt" for="knowledge_fb"><?php esc_html_e( 'Facebook page URL', 'wp-seopress' ); ?></label>
|
397 |
+
<input type="text" id="knowledge_fb" class="location-input" name="knowledge_fb" placeholder="<?php esc_html_e('eg: https://www.facebook.com/your-page','wp-seopress'); ?>" value="<?php echo $knowledge_fb; ?>" />
|
398 |
+
|
399 |
+
<label class="location-prompt" for="knowledge_tw"><?php esc_html_e( 'Twitter Username', 'wp-seopress' ); ?></label>
|
400 |
+
<input type="text" id="knowledge_tw" class="location-input" name="knowledge_tw" placeholder="<?php esc_html_e('eg: @wp_seopress', 'wp-seopress'); ?>" value="<?php echo $knowledge_tw; ?>" />
|
401 |
+
|
402 |
+
<label class="location-prompt" for="knowledge_pin"><?php esc_html_e( 'Pinterest URL', 'wp-seopress' ); ?></label>
|
403 |
+
<input type="text" id="knowledge_pin" class="location-input" name="knowledge_pin" placeholder="<?php esc_html_e('eg: https://pinterest.com/wpbuy/', 'wp-seopress'); ?>" value="<?php echo $knowledge_pin; ?>" />
|
404 |
+
|
405 |
+
<label class="location-prompt" for="knowledge_insta"><?php esc_html_e( 'Instagram URL', 'wp-seopress' ); ?></label>
|
406 |
+
<input type="text" id="knowledge_insta" class="location-input" name="knowledge_insta" placeholder="<?php esc_html_e('eg: https://www.instagram.com/wp_seopress/', 'wp-seopress'); ?>" value="<?php echo $knowledge_insta; ?>" />
|
407 |
+
|
408 |
+
<label class="location-prompt" for="knowledge_yt"><?php esc_html_e( 'YouTube URL', 'wp-seopress' ); ?></label>
|
409 |
+
<input type="text" id="knowledge_yt" class="location-input" name="knowledge_yt" placeholder="<?php esc_html_e('eg: https://www.youtube.com/SEOPress', 'wp-seopress'); ?>" value="<?php echo $knowledge_yt; ?>" />
|
410 |
+
|
411 |
+
<label class="location-prompt" for="knowledge_li"><?php esc_html_e( 'LinkedIn URL', 'wp-seopress' ); ?></label>
|
412 |
+
<input type="text" id="knowledge_li" class="location-input" name="knowledge_li" placeholder="<?php esc_html_e('eg: http://linkedin.com/company/seopress/', 'wp-seopress'); ?>" value="<?php echo $knowledge_li; ?>" />
|
413 |
+
|
414 |
+
<label class="location-prompt" for="knowledge_mys"><?php esc_html_e( 'MySpace URL', 'wp-seopress' ); ?></label>
|
415 |
+
<input type="text" id="knowledge_mys" class="location-input" name="knowledge_mys" placeholder="<?php esc_html_e('eg: https://myspace.com/your-page', 'wp-seopress'); ?>" value="<?php echo $knowledge_mys; ?>" />
|
416 |
+
|
417 |
+
<label class="location-prompt" for="knowledge_sound"><?php esc_html_e( 'Soundcloud URL', 'wp-seopress' ); ?></label>
|
418 |
+
<input type="text" id="knowledge_sound" class="location-input" name="knowledge_sound" placeholder="<?php esc_html_e('eg: https://soundcloud.com/michaelmccannmusic', 'wp-seopress'); ?>" value="<?php echo $knowledge_sound; ?>" />
|
419 |
+
|
420 |
+
<label class="location-prompt" for="knowledge_tu"><?php esc_html_e( 'Tumblr URL', 'wp-seopress' ); ?></label>
|
421 |
+
<input type="text" id="knowledge_tu" class="location-input" name="knowledge_tu" placeholder="<?php esc_html_e('eg: https://your-site.tumblr.com', 'wp-seopress'); ?>" value="<?php echo $knowledge_tu; ?>" />
|
422 |
+
|
423 |
+
<p class="seopress-setup-actions step">
|
424 |
+
<button type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Continue', 'wp-seopress' ); ?>" name="save_step"><?php esc_html_e( 'Continue', 'wp-seopress' ); ?></button>
|
425 |
+
<?php wp_nonce_field( 'seopress-setup' ); ?>
|
426 |
+
</p>
|
427 |
+
</form>
|
428 |
+
<?php
|
429 |
+
}
|
430 |
+
|
431 |
+
/**
|
432 |
+
* Save step 2 settings.
|
433 |
+
*/
|
434 |
+
public function seopress_setup_site_save() {
|
435 |
+
check_admin_referer( 'seopress-setup' );
|
436 |
+
|
437 |
+
//Get options
|
438 |
+
$seopress_titles_option = get_option("seopress_titles_option_name");
|
439 |
+
$seopress_social_option = get_option("seopress_social_option_name");
|
440 |
+
|
441 |
+
//Titles
|
442 |
+
$seopress_titles_option['seopress_titles_sep'] = isset( $_POST['site_sep'] ) ? sanitize_text_field( wp_unslash( $_POST['site_sep'] ) ) : '';
|
443 |
+
$seopress_titles_option['seopress_titles_home_site_title'] = isset( $_POST['site_title'] ) ? sanitize_text_field( wp_unslash( $_POST['site_title'] ) ) : '';
|
444 |
+
|
445 |
+
//Social
|
446 |
+
$seopress_social_option['seopress_social_knowledge_type'] = isset( $_POST['knowledge_type'] ) ? esc_attr( wp_unslash( $_POST['knowledge_type'] ) ) : '';
|
447 |
+
$seopress_social_option['seopress_social_knowledge_name'] = isset( $_POST['knowledge_name'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_name'] ) ) : '';
|
448 |
+
$seopress_social_option['seopress_social_knowledge_img'] = isset( $_POST['knowledge_img'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_img'] ) ) : '';
|
449 |
+
|
450 |
+
//Social accounts
|
451 |
+
$seopress_social_option['seopress_social_accounts_facebook'] = isset( $_POST['knowledge_fb'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_fb'] ) ) : '';
|
452 |
+
$seopress_social_option['seopress_social_accounts_twitter'] = isset( $_POST['knowledge_tw'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_tw'] ) ) : '';
|
453 |
+
$seopress_social_option['seopress_social_accounts_pinterest'] = isset( $_POST['knowledge_pin'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_pin'] ) ) : '';
|
454 |
+
$seopress_social_option['seopress_social_accounts_instagram'] = isset( $_POST['knowledge_insta'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_insta'] ) ) : '';
|
455 |
+
$seopress_social_option['seopress_social_accounts_youtube'] = isset( $_POST['knowledge_yt'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_yt'] ) ) : '';
|
456 |
+
$seopress_social_option['seopress_social_accounts_linkedin'] = isset( $_POST['knowledge_li'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_li'] ) ) : '';
|
457 |
+
$seopress_social_option['seopress_social_accounts_myspace'] = isset( $_POST['knowledge_mys'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_mys'] ) ) : '';
|
458 |
+
$seopress_social_option['seopress_social_accounts_soundcloud'] = isset( $_POST['knowledge_sound'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_sound'] ) ) : '';
|
459 |
+
$seopress_social_option['seopress_social_accounts_tumblr'] = isset( $_POST['knowledge_tu'] ) ? sanitize_text_field( wp_unslash( $_POST['knowledge_tu'] ) ) : '';
|
460 |
+
|
461 |
+
//Save options
|
462 |
+
update_option( 'seopress_titles_option_name', $seopress_titles_option );
|
463 |
+
update_option( 'seopress_social_option_name', $seopress_social_option );
|
464 |
+
|
465 |
+
wp_safe_redirect( esc_url_raw( $this->get_next_step_link() ) );
|
466 |
+
exit;
|
467 |
+
}
|
468 |
+
|
469 |
+
/**
|
470 |
+
* Init "Step 3: Indexing Step".
|
471 |
+
*/
|
472 |
+
public function seopress_setup_indexing() {
|
473 |
+
$seopress_titles_option = get_option( 'seopress_titles_option_name' );
|
474 |
+
?>
|
475 |
+
<h1><?php esc_html_e( 'Indexing', 'wp-seopress' ); ?></h1>
|
476 |
+
<p><?php esc_html_e( 'Specify to the search engines what you want to index or not. Defaut: index', 'wp-seopress' ); ?></p>
|
477 |
+
<form method="post" class="seopress-wizard-indexing-form">
|
478 |
+
<?php if(!empty(seopress_get_post_types())) { ?>
|
479 |
+
<div class="seopress-wizard-services">
|
480 |
+
<p>
|
481 |
+
<?php _e('For which single post types, indexing should be disabled?','wp-seopress'); ?>
|
482 |
+
</p>
|
483 |
+
|
484 |
+
<ul>
|
485 |
+
<?php
|
486 |
+
//Post Types
|
487 |
+
foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
|
488 |
+
$seopress_titles_single_titles = isset($seopress_titles_option['seopress_titles_single_titles'][$seopress_cpt_key]['noindex']);
|
489 |
+
|
490 |
+
echo '<h3>'.$seopress_cpt_value->labels->name.' <em><small>['.$seopress_cpt_value->name.']</small></em></h3>';
|
491 |
+
|
492 |
+
//Single No-Index CPT
|
493 |
+
echo '<li class="recommended-item checkbox">';
|
494 |
+
echo '<input id="seopress_titles_single_cpt_noindex['.$seopress_cpt_key.']" name="seopress_titles_option_name[seopress_titles_single_titles]['.$seopress_cpt_key.'][noindex]" type="checkbox"';
|
495 |
+
if ('1' == $seopress_titles_single_titles) echo 'checked="yes"';
|
496 |
+
echo ' value="1"/>';
|
497 |
+
|
498 |
+
echo '<label for="seopress_titles_single_cpt_noindex['.$seopress_cpt_key.']">'. __( 'Do not display this single post type in search engine results <strong>(noindex)</strong>', 'wp-seopress' ) .'</label>';
|
499 |
+
echo '</li>';
|
500 |
+
}
|
501 |
+
?>
|
502 |
+
</ul>
|
503 |
+
</div>
|
504 |
+
<?php } ?>
|
505 |
+
|
506 |
+
<?php if(!empty(seopress_get_post_types())) { ?>
|
507 |
+
<div class="seopress-wizard-services">
|
508 |
+
<p>
|
509 |
+
<?php _e('For which post type archives, indexing should be disabled?','wp-seopress'); ?>
|
510 |
+
</p>
|
511 |
+
|
512 |
+
<ul>
|
513 |
+
<?php
|
514 |
+
foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
|
515 |
+
if (!in_array($seopress_cpt_key, array('post','page'))) {
|
516 |
+
|
517 |
+
echo '<h3>'.$seopress_cpt_value->labels->name.' <em><small>['.$seopress_cpt_value->name.']</small></em></h2>';
|
518 |
+
|
519 |
+
//Archive No-Index CPT
|
520 |
+
$seopress_titles_archive_titles = isset($seopress_titles_option['seopress_titles_archive_titles'][$seopress_cpt_key]['noindex']);
|
521 |
+
|
522 |
+
echo '<li class="recommended-item checkbox">';
|
523 |
+
echo '<input id="seopress_titles_archive_cpt_noindex['.$seopress_cpt_key.']" name="seopress_titles_option_name[seopress_titles_archive_titles]['.$seopress_cpt_key.'][noindex]" type="checkbox"';
|
524 |
+
if ('1' == $seopress_titles_archive_titles) echo 'checked="yes"';
|
525 |
+
echo ' value="1"/>';
|
526 |
+
|
527 |
+
echo '<label for="seopress_titles_archive_cpt_noindex['.$seopress_cpt_key.']">'. __( 'Do not display this post type archive in search engine results <strong>(noindex)</strong>', 'wp-seopress' ) .'</label>';
|
528 |
+
echo '</li>';
|
529 |
+
}
|
530 |
+
}
|
531 |
+
?>
|
532 |
+
</ul>
|
533 |
+
</div>
|
534 |
+
<?php } ?>
|
535 |
+
|
536 |
+
<?php if(!empty(seopress_get_taxonomies())) { ?>
|
537 |
+
<div class="seopress-wizard-services">
|
538 |
+
<p>
|
539 |
+
<?php _e('For which taxonomy archives, indexing should be disabled?','wp-seopress'); ?>
|
540 |
+
</p>
|
541 |
+
|
542 |
+
<ul>
|
543 |
+
<?php
|
544 |
+
//Archives
|
545 |
+
foreach (seopress_get_taxonomies() as $seopress_tax_key => $seopress_tax_value) {
|
546 |
+
$seopress_titles_tax_titles = isset($seopress_titles_option['seopress_titles_tax_titles'][$seopress_tax_key]['noindex']);
|
547 |
+
|
548 |
+
echo '<h3>'.$seopress_tax_value->labels->name.' <em><small>['.$seopress_tax_value->name.']</small></em></h2>';
|
549 |
+
|
550 |
+
//Tax No-Index
|
551 |
+
echo '<li class="recommended-item checkbox">';
|
552 |
+
echo '<input id="seopress_titles_tax_noindex['.$seopress_tax_key.']" name="seopress_titles_option_name[seopress_titles_tax_titles]['.$seopress_tax_key.'][noindex]" type="checkbox"';
|
553 |
+
if ('1' == $seopress_titles_tax_titles) echo 'checked="yes"';
|
554 |
+
echo ' value="1"/>';
|
555 |
+
|
556 |
+
echo '<label for="seopress_titles_tax_noindex['.$seopress_tax_key.']">'. __( 'Do not display this taxonomy archive in search engine results <strong>(noindex)</strong>', 'wp-seopress' ) .'</label>';
|
557 |
+
echo '</li>';
|
558 |
+
}
|
559 |
+
?>
|
560 |
+
</ul>
|
561 |
+
</div>
|
562 |
+
<?php } ?>
|
563 |
+
|
564 |
+
<p class="seopress-setup-actions step">
|
565 |
+
<button type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Continue', 'wp-seopress' ); ?>" name="save_step"><?php esc_html_e( 'Continue', 'wp-seopress' ); ?></button>
|
566 |
+
<?php wp_nonce_field( 'seopress-setup' ); ?>
|
567 |
+
</p>
|
568 |
+
</form>
|
569 |
+
<?php
|
570 |
+
}
|
571 |
+
|
572 |
+
/**
|
573 |
+
* Save Step 3 settings.
|
574 |
+
*/
|
575 |
+
public function seopress_setup_indexing_save() {
|
576 |
+
check_admin_referer( 'seopress-setup' );
|
577 |
+
|
578 |
+
//Get options
|
579 |
+
$seopress_titles_option = get_option("seopress_titles_option_name");
|
580 |
+
|
581 |
+
//Post Types noindex
|
582 |
+
foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
|
583 |
+
if (isset($_POST['seopress_titles_option_name']['seopress_titles_single_titles'][$seopress_cpt_key]['noindex'])) {
|
584 |
+
$noindex = esc_attr(wp_unslash($_POST['seopress_titles_option_name']['seopress_titles_single_titles'][$seopress_cpt_key]['noindex']));
|
585 |
+
} else {
|
586 |
+
$noindex = NULL;
|
587 |
+
}
|
588 |
+
$seopress_titles_option['seopress_titles_single_titles'][$seopress_cpt_key]['noindex'] = $noindex;
|
589 |
+
}
|
590 |
+
|
591 |
+
//Post Type archives noindex
|
592 |
+
foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
|
593 |
+
if (isset($_POST['seopress_titles_option_name']['seopress_titles_archive_titles'][$seopress_cpt_key]['noindex'])) {
|
594 |
+
$noindex = esc_attr(wp_unslash($_POST['seopress_titles_option_name']['seopress_titles_archive_titles'][$seopress_cpt_key]['noindex']));
|
595 |
+
} else {
|
596 |
+
$noindex = NULL;
|
597 |
+
}
|
598 |
+
$seopress_titles_option['seopress_titles_archive_titles'][$seopress_cpt_key]['noindex'] = $noindex;
|
599 |
+
}
|
600 |
+
|
601 |
+
//Archives noindex
|
602 |
+
foreach (seopress_get_taxonomies() as $seopress_tax_key => $seopress_tax_value) {
|
603 |
+
if (isset($_POST['seopress_titles_option_name']['seopress_titles_tax_titles'][$seopress_tax_key]['noindex'])) {
|
604 |
+
$noindex = esc_attr(wp_unslash($_POST['seopress_titles_option_name']['seopress_titles_tax_titles'][$seopress_tax_key]['noindex']));
|
605 |
+
} else {
|
606 |
+
$noindex = NULL;
|
607 |
+
}
|
608 |
+
$seopress_titles_option['seopress_titles_tax_titles'][$seopress_tax_key]['noindex'] = $noindex;
|
609 |
+
}
|
610 |
+
|
611 |
+
//Save options
|
612 |
+
update_option( 'seopress_titles_option_name', $seopress_titles_option );
|
613 |
+
|
614 |
+
wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
|
615 |
+
exit;
|
616 |
+
}
|
617 |
+
|
618 |
+
/**
|
619 |
+
* Init "Step 4: Advanced Step".
|
620 |
+
*/
|
621 |
+
public function seopress_setup_advanced() {
|
622 |
+
$seopress_titles_option = get_option( 'seopress_titles_option_name' );
|
623 |
+
$author_noindex = isset($seopress_titles_option['seopress_titles_archives_author_noindex']);
|
624 |
+
|
625 |
+
$seopress_advanced_option = get_option( 'seopress_advanced_option_name' );
|
626 |
+
$attachments_file = isset($seopress_advanced_option['seopress_advanced_advanced_attachments_file']);
|
627 |
+
$category_url = isset($seopress_advanced_option['seopress_advanced_advanced_category_url']);
|
628 |
+
?>
|
629 |
+
<h1><?php esc_html_e( 'Advanced options', 'wp-seopress' ); ?></h1>
|
630 |
+
<form method="post">
|
631 |
+
<ul class="seopress-wizard-services">
|
632 |
+
<?php
|
633 |
+
//Noindex on author archives
|
634 |
+
echo '<li class="seopress-wizard-service-item checkbox">';
|
635 |
+
echo '<input id="author_noindex" class="location-input" name="author_noindex" type="checkbox"';
|
636 |
+
if ('1' == $author_noindex) echo 'checked="yes"';
|
637 |
+
echo ' value="1"/>';
|
638 |
+
|
639 |
+
echo '<label for="author_noindex" class="location-prompt">'. __( 'Do not display author archives in search engine results <strong>(noindex)</strong>', 'wp-seopress' ) .'</label>';
|
640 |
+
echo '</li>';
|
641 |
+
echo '<li class="seopress-wizard-service-info">';
|
642 |
+
_e('You only have one author on your site? Check this option to avoid duplicate content.','wp-seopress');
|
643 |
+
echo '</li>';
|
644 |
+
|
645 |
+
//Redirect attachment pages to URL
|
646 |
+
echo '<li class="seopress-wizard-service-item checkbox">';
|
647 |
+
echo '<input id="attachments_file" class="location-input" name="attachments_file" type="checkbox"';
|
648 |
+
if ('1' == $attachments_file) echo 'checked="yes"';
|
649 |
+
echo ' value="1"/>';
|
650 |
+
|
651 |
+
echo '<label for="attachments_file" class="location-prompt">'. __( 'Redirect attachment pages to the file URL (https://www.example.com/my-image-file.jpg)', 'wp-seopress' ) .'</label>';
|
652 |
+
echo '</li>';
|
653 |
+
echo '<li class="seopress-wizard-service-info">';
|
654 |
+
_e('By default, SEOPress redirects your Attachment pages to the parent post. Optimize this by redirecting the user directly to the URL of the media file.','wp-seopress');
|
655 |
+
echo '</li>';
|
656 |
+
|
657 |
+
//Remove /category/ in URLs
|
658 |
+
echo '<li class="seopress-wizard-service-item checkbox">';
|
659 |
+
echo '<input id="category_url" name="category_url" type="checkbox" class="location-input"';
|
660 |
+
if ('1' == $category_url) echo 'checked="yes"';
|
661 |
+
echo ' value="1"/>';
|
662 |
+
|
663 |
+
echo '<label for="category_url" class="location-prompt">'. __( 'Remove /category/ in your permalinks', 'wp-seopress' ) .'</label>';
|
664 |
+
echo '</li>';
|
665 |
+
echo '<li class="seopress-wizard-service-info">';
|
666 |
+
_e('Shorten your URLs by removing /category/ and improve your SEO.','wp-seopress');
|
667 |
+
echo '</li>';
|
668 |
+
?>
|
669 |
+
</ul>
|
670 |
+
|
671 |
+
<p class="seopress-setup-actions step">
|
672 |
+
<button type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Continue', 'wp-seopress' ); ?>" name="save_step"><?php esc_html_e( 'Continue', 'wp-seopress' ); ?></button>
|
673 |
+
<?php wp_nonce_field( 'seopress-setup' ); ?>
|
674 |
+
</p>
|
675 |
+
</form>
|
676 |
+
<?php
|
677 |
+
}
|
678 |
+
|
679 |
+
/**
|
680 |
+
* Save step 4 settings.
|
681 |
+
*/
|
682 |
+
public function seopress_setup_advanced_save() {
|
683 |
+
check_admin_referer( 'seopress-setup' );
|
684 |
+
|
685 |
+
//Get options
|
686 |
+
$seopress_titles_option = get_option("seopress_titles_option_name");
|
687 |
+
$seopress_advanced_option = get_option("seopress_advanced_option_name");
|
688 |
+
|
689 |
+
//Author indexing
|
690 |
+
$seopress_titles_option['seopress_titles_archives_author_noindex'] = isset( $_POST['author_noindex'] ) ? esc_attr(wp_unslash($_POST['author_noindex'])) : NULL;
|
691 |
+
|
692 |
+
//Advanced
|
693 |
+
$seopress_advanced_option['seopress_advanced_advanced_attachments_file'] = isset( $_POST['attachments_file'] ) ? esc_attr(wp_unslash($_POST['attachments_file'])) : NULL;
|
694 |
+
$seopress_advanced_option['seopress_advanced_advanced_category_url'] = isset( $_POST['category_url'] ) ? esc_attr(wp_unslash($_POST['category_url'])) : NULL;
|
695 |
+
|
696 |
+
//Save options
|
697 |
+
update_option( 'seopress_titles_option_name', $seopress_titles_option );
|
698 |
+
update_option( 'seopress_advanced_option_name', $seopress_advanced_option );
|
699 |
+
|
700 |
+
wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
|
701 |
+
exit;
|
702 |
+
}
|
703 |
+
|
704 |
+
/**
|
705 |
+
* Final step.
|
706 |
+
*/
|
707 |
+
public function seopress_setup_ready() {
|
708 |
+
//Remove SEOPress notice
|
709 |
+
$seopress_notices = get_option('seopress_notices');
|
710 |
+
$seopress_notices['notice-wizard'] = "1";
|
711 |
+
update_option('seopress_notices',$seopress_notices);
|
712 |
+
|
713 |
+
//Flush permalinks
|
714 |
+
flush_rewrite_rules();
|
715 |
+
?>
|
716 |
+
<h1><?php esc_html_e( "Your site is now ready for search engines!", 'wp-seopress' ); ?></h1>
|
717 |
+
|
718 |
+
<?php if (get_option( 'seopress_pro_license_status' ) !='valid' && is_plugin_active('wp-seopress-pro/seopress-pro.php') && !is_multisite()) { ?>
|
719 |
+
<div class="seopress-message seopress-newsletter">
|
720 |
+
<h3 class="seopress-setup-actions step">
|
721 |
+
<?php esc_html_e( "Welcome to SEOPress PRO!","wp-seopress"); ?>
|
722 |
+
</h3>
|
723 |
+
<p class="seopress-setup-actions step">
|
724 |
+
<?php esc_html_e( "Please activate your license to receive automatic updates and get premium support.", 'wp-seopress' ); ?>
|
725 |
+
</p>
|
726 |
+
<p class="seopress-setup-actions step">
|
727 |
+
<a class="button button-primary button-large" href="<?php echo admin_url( 'admin.php?page=seopress-license' ); ?>">
|
728 |
+
<span class="dashicons dashicons-admin-network"></span>
|
729 |
+
<?php _e('Activate License', 'wp-seopress'); ?>
|
730 |
+
</a>
|
731 |
+
</p>
|
732 |
+
</div>
|
733 |
+
<?php } else { ?>
|
734 |
+
<div class="seopress-message seopress-newsletter">
|
735 |
+
<h3 class="seopress-setup-actions step">
|
736 |
+
<?php esc_html_e( "Go PRO with SEOPress PRO!","wp-seopress"); ?>
|
737 |
+
</h3>
|
738 |
+
<p class="seopress-setup-actions step">
|
739 |
+
<?php esc_html_e( "Get a lot of additional features by upgrading PRO like automatic and manual schemas, Video Sitemap, WooCommerce enhancements, Analytics statistics in your Dashboard, breadcrumbs, redirections and more.", 'wp-seopress' ); ?>
|
740 |
+
</p>
|
741 |
+
<p class="seopress-setup-actions step">
|
742 |
+
<a class="button button-primary button-large" href="https://www.seopress.org/" target="_blank">
|
743 |
+
<span class="dashicons dashicons-cart"></span>
|
744 |
+
<?php _e('Buy SEOPress PRO - $39 / unlimited sites', 'wp-seopress'); ?>
|
745 |
+
</a>
|
746 |
+
</p>
|
747 |
+
</div>
|
748 |
+
<?php } ?>
|
749 |
+
|
750 |
+
<ul class="seopress-wizard-next-steps">
|
751 |
+
<li class="seopress-wizard-next-step-item">
|
752 |
+
<div class="seopress-wizard-next-step-description">
|
753 |
+
<p class="next-step-heading"><?php esc_html_e("Next step","wp-seopress"); ?></p>
|
754 |
+
<h3 class="next-step-description"><?php esc_html_e("Create your XML sitemaps","wp-seopress"); ?></h3>
|
755 |
+
<p class="next-step-extra-info"><?php esc_html_e("Build a custom XML sitemaps to improve Google crawling of your site.","wp-seopress"); ?></p>
|
756 |
+
</div>
|
757 |
+
<div class="seopress-wizard-next-step-action">
|
758 |
+
<p class="seopress-setup-actions step">
|
759 |
+
<a class="button button-primary button-large" href="<?php echo admin_url( 'admin.php?page=seopress-xml-sitemap' ); ?>">
|
760 |
+
<?php esc_html_e("Configure your XML sitemaps","wp-seopress"); ?>
|
761 |
+
</a>
|
762 |
+
</p>
|
763 |
+
</div>
|
764 |
+
</li>
|
765 |
+
<li class="seopress-wizard-additional-steps">
|
766 |
+
<div class="seopress-wizard-next-step-description">
|
767 |
+
<p class="next-step-heading"><?php esc_html_e( 'Follow us:', 'wp-seopress' ); ?></p>
|
768 |
+
</div>
|
769 |
+
<div class="seopress-wizard-next-step-action step">
|
770 |
+
<ul class="recommended-step">
|
771 |
+
<li class="recommended-item">
|
772 |
+
<a href="https://www.facebook.com/seopresspro/" target="_blank">
|
773 |
+
<span class="dashicons dashicons-facebook"></span>
|
774 |
+
<?php _e('Like our Facebook page','wp-seopress'); ?>
|
775 |
+
</a>
|
776 |
+
</li>
|
777 |
+
<li class="recommended-item">
|
778 |
+
<a href="https://twitter.com/wp_seopress" target="_blank">
|
779 |
+
<span class="dashicons dashicons-twitter"></span>
|
780 |
+
<?php _e('Follow us on Twitter','wp-seopress'); ?>
|
781 |
+
</a>
|
782 |
+
</li>
|
783 |
+
<li class="recommended-item">
|
784 |
+
<a href="https://www.youtube.com/seopress" target="_blank">
|
785 |
+
<span class="dashicons dashicons-video-alt3"></span>
|
786 |
+
<?php _e('Watch our guided tour videos to learn more about SEOPress','wp-seopress'); ?>
|
787 |
+
</a>
|
788 |
+
</li>
|
789 |
+
<li class="recommended-item">
|
790 |
+
<a href="https://www.instagram.com/wp_seopress/" target="_blank">
|
791 |
+
<span class="dashicons dashicons-instagram"></span>
|
792 |
+
<?php _e('The off side of SEOPress','wp-seopress'); ?>
|
793 |
+
</a>
|
794 |
+
</li>
|
795 |
+
</ul>
|
796 |
+
</div>
|
797 |
+
</li>
|
798 |
+
<li class="seopress-wizard-additional-steps">
|
799 |
+
<div class="seopress-wizard-next-step-description">
|
800 |
+
<p class="next-step-heading"><?php esc_html_e( 'You can also:', 'wp-seopress' ); ?></p>
|
801 |
+
</div>
|
802 |
+
<div class="seopress-wizard-next-step-action step">
|
803 |
+
<p class="seopress-setup-actions step">
|
804 |
+
<a class="button button-large" href="<?php echo esc_url( admin_url() ); ?>">
|
805 |
+
<?php esc_html_e( 'Visit Dashboard', 'wp-seopress' ); ?>
|
806 |
+
</a>
|
807 |
+
<a class="button button-large" href="<?php echo esc_url( admin_url( 'admin.php?page=seopress-option' ) ); ?>">
|
808 |
+
<?php esc_html_e( 'Review Settings', 'wp-seopress' ); ?>
|
809 |
+
</a>
|
810 |
+
<a class="button button-large" href="<?php echo esc_url('https://www.seopress.org/support/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress'); ?>" target="_blank">
|
811 |
+
<?php esc_html_e( 'Knowledge base', 'wp-seopress' ); ?>
|
812 |
+
</a>
|
813 |
+
</p>
|
814 |
+
</div>
|
815 |
+
</li>
|
816 |
+
</ul>
|
817 |
+
<p class="next-steps-help-text"><?php echo wp_kses_post( $help_text ); ?></p>
|
818 |
+
<?php
|
819 |
+
}
|
820 |
+
}
|
821 |
+
|
822 |
+
new SEOPRESS_Admin_Setup_Wizard();
|
inc/admin/admin.php
CHANGED
@@ -690,7 +690,7 @@ class seopress_options
|
|
690 |
<div id="section-import-redirects" class="postbox section-tool">
|
691 |
<h3><span><?php _e( 'Import Redirections', 'wp-seopress' ); ?></span></h3>
|
692 |
<div class="inside">
|
693 |
-
<p><?php _e( 'Import your own redirections from a .csv file (separator ";"). You must have
|
694 |
<p>
|
695 |
<a href="https://www.seopress.org/wp-content/uploads/csv/seopress-redirections-example.csv" target="_blank">
|
696 |
<?php _e('Download a CSV example','wp-seopress'); ?>
|
@@ -708,6 +708,22 @@ class seopress_options
|
|
708 |
</form>
|
709 |
</div><!-- .inside -->
|
710 |
</div><!-- .postbox -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
711 |
<div id="section-export-redirects" class="postbox section-tool">
|
712 |
<h3><span><?php _e( 'Export Redirections', 'wp-seopress' ); ?></span></h3>
|
713 |
<div class="inside">
|
@@ -924,6 +940,30 @@ class seopress_options
|
|
924 |
<?php if(seopress_advanced_appearance_notifications_option() !='1') { ?>
|
925 |
<div id="tab_seopress_notifications" class="seopress-tab <?php if ($current_tab == 'tab_seopress_notifications') { echo 'active'; } ?>">
|
926 |
<div id="seopress-notifications-center">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
927 |
<?php if (get_theme_support('title-tag') !='1') {
|
928 |
function seopress_get_hidden_notices_title_tag_option() {
|
929 |
$seopress_get_hidden_notices_title_tag_option = get_option("seopress_notices");
|
@@ -1291,7 +1331,7 @@ class seopress_options
|
|
1291 |
if ($seopress_results_reverse_domain_array !='') {
|
1292 |
echo '<ul>';
|
1293 |
foreach ($seopress_results_reverse_domain_array as $key => $value) {
|
1294 |
-
echo '<li><span class="dashicons dashicons-minus"></span><a href="'
|
1295 |
}
|
1296 |
echo '</ul>';
|
1297 |
}
|
@@ -2702,6 +2742,14 @@ class seopress_options
|
|
2702 |
array( $this, 'seopress_google_analytics_disable_callback' ), // Callback
|
2703 |
'seopress-settings-admin-google-analytics-enable', // Page
|
2704 |
'seopress_setting_section_google_analytics_enable' // Section
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2705 |
);
|
2706 |
|
2707 |
add_settings_field(
|
@@ -4981,6 +5029,25 @@ class seopress_options
|
|
4981 |
}
|
4982 |
}
|
4983 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4984 |
public function seopress_google_analytics_opt_out_msg_callback()
|
4985 |
{
|
4986 |
$options = get_option( 'seopress_google_analytics_option_name' );
|
690 |
<div id="section-import-redirects" class="postbox section-tool">
|
691 |
<h3><span><?php _e( 'Import Redirections', 'wp-seopress' ); ?></span></h3>
|
692 |
<div class="inside">
|
693 |
+
<p><?php _e( 'Import your own redirections from a .csv file (separator ";"). You must have 5 columns in this order: url to match (without your domain name), url to redirect in absolute, type of redirection (301, 302 or 307), yes to enable the redirect and the last one the query parameter ("exact_match" = Exact match with all parameters, "without_param" = Exclude all parameters or "with_ignored_param" = Exclude all parameters and passed them to the redirection). Leave it empty to disable the redirect.', 'wp-seopress' ); ?></p>
|
694 |
<p>
|
695 |
<a href="https://www.seopress.org/wp-content/uploads/csv/seopress-redirections-example.csv" target="_blank">
|
696 |
<?php _e('Download a CSV example','wp-seopress'); ?>
|
708 |
</form>
|
709 |
</div><!-- .inside -->
|
710 |
</div><!-- .postbox -->
|
711 |
+
<div id="section-import-redirects-plugin" class="postbox section-tool">
|
712 |
+
<h3><span><?php _e( 'Import Redirections from Redirections plugin', 'wp-seopress' ); ?></span></h3>
|
713 |
+
<div class="inside">
|
714 |
+
<p><?php _e( 'Import your own redirections from a .json file generated by the Redirections plugin. Note that we do not support certain options like regex. Make sure you don\'t have duplicates between your file and existing redirects to avoid conflicts.', 'wp-seopress' ); ?></p>
|
715 |
+
<form method="post" enctype="multipart/form-data">
|
716 |
+
<p>
|
717 |
+
<input type="file" name="import_file"/>
|
718 |
+
</p>
|
719 |
+
<p>
|
720 |
+
<input type="hidden" name="seopress_action" value="import_redirections_plugin_settings" />
|
721 |
+
<?php wp_nonce_field( 'seopress_import_redirections_plugin_nonce', 'seopress_import_redirections_plugin_nonce' ); ?>
|
722 |
+
<?php submit_button( __( 'Import', 'wp-seopress' ), 'secondary', 'submit', false ); ?>
|
723 |
+
</p>
|
724 |
+
</form>
|
725 |
+
</div><!-- .inside -->
|
726 |
+
</div><!-- .postbox -->
|
727 |
<div id="section-export-redirects" class="postbox section-tool">
|
728 |
<h3><span><?php _e( 'Export Redirections', 'wp-seopress' ); ?></span></h3>
|
729 |
<div class="inside">
|
940 |
<?php if(seopress_advanced_appearance_notifications_option() !='1') { ?>
|
941 |
<div id="tab_seopress_notifications" class="seopress-tab <?php if ($current_tab == 'tab_seopress_notifications') { echo 'active'; } ?>">
|
942 |
<div id="seopress-notifications-center">
|
943 |
+
<?php
|
944 |
+
function seopress_get_hidden_notices_wizard_option() {
|
945 |
+
$seopress_get_hidden_notices_wizard_option = get_option("seopress_notices");
|
946 |
+
if ( ! empty ( $seopress_get_hidden_notices_wizard_option ) ) {
|
947 |
+
foreach ($seopress_get_hidden_notices_wizard_option as $key => $seopress_get_hidden_notices_wizard_value)
|
948 |
+
$options[$key] = $seopress_get_hidden_notices_wizard_value;
|
949 |
+
if (isset($seopress_get_hidden_notices_wizard_option['notice-wizard'])) {
|
950 |
+
return $seopress_get_hidden_notices_wizard_option['notice-wizard'];
|
951 |
+
}
|
952 |
+
}
|
953 |
+
}
|
954 |
+
if(seopress_get_hidden_notices_wizard_option() =='1') {
|
955 |
+
//do nothing
|
956 |
+
} else { ?>
|
957 |
+
<div id="notice-wizard-alert" class="seopress-alert deleteable">
|
958 |
+
<p>
|
959 |
+
<span class="dashicons dashicons-warning"></span>
|
960 |
+
<strong><?php _e('Configure SEOPress in a few minutes thanks to our installation wizard','wp-seopress'); ?></strong>
|
961 |
+
</p>
|
962 |
+
<a class="button-primary" href="<?php echo admin_url( 'admin.php?page=seopress-setup' ); ?>"><?php _e('Start the wizard','wp-seopress'); ?></a>
|
963 |
+
<span name="notice-wizard" id="notice-wizard" class="dashicons dashicons-trash remove-notice" data-notice="notice-wizard"></span>
|
964 |
+
</div>
|
965 |
+
<?php }
|
966 |
+
?>
|
967 |
<?php if (get_theme_support('title-tag') !='1') {
|
968 |
function seopress_get_hidden_notices_title_tag_option() {
|
969 |
$seopress_get_hidden_notices_title_tag_option = get_option("seopress_notices");
|
1331 |
if ($seopress_results_reverse_domain_array !='') {
|
1332 |
echo '<ul>';
|
1333 |
foreach ($seopress_results_reverse_domain_array as $key => $value) {
|
1334 |
+
echo '<li><span class="dashicons dashicons-minus"></span><a href="//'.preg_replace('#^https?://#', '', $value[0]).'" target="_blank">'.$value[0].'</a><span class="dashicons dashicons-external"></span></li>';
|
1335 |
}
|
1336 |
echo '</ul>';
|
1337 |
}
|
2742 |
array( $this, 'seopress_google_analytics_disable_callback' ), // Callback
|
2743 |
'seopress-settings-admin-google-analytics-enable', // Page
|
2744 |
'seopress_setting_section_google_analytics_enable' // Section
|
2745 |
+
);
|
2746 |
+
|
2747 |
+
add_settings_field(
|
2748 |
+
'seopress_google_analytics_half_disable', // ID
|
2749 |
+
'', // Title
|
2750 |
+
array( $this, 'seopress_google_analytics_half_disable_callback' ), // Callback
|
2751 |
+
'seopress-settings-admin-google-analytics-enable', // Page
|
2752 |
+
'seopress_setting_section_google_analytics_enable' // Section
|
2753 |
);
|
2754 |
|
2755 |
add_settings_field(
|
5029 |
}
|
5030 |
}
|
5031 |
|
5032 |
+
public function seopress_google_analytics_half_disable_callback()
|
5033 |
+
{
|
5034 |
+
$options = get_option( 'seopress_google_analytics_option_name' );
|
5035 |
+
|
5036 |
+
$check = isset($options['seopress_google_analytics_half_disable']);
|
5037 |
+
|
5038 |
+
echo '<input id="seopress_google_analytics_half_disable" name="seopress_google_analytics_option_name[seopress_google_analytics_half_disable]" type="checkbox"';
|
5039 |
+
if ('1' == $check) echo 'checked="yes"';
|
5040 |
+
echo ' value="1"/>';
|
5041 |
+
|
5042 |
+
echo '<label for="seopress_google_analytics_half_disable">'. __( 'Display and automatically accept the user‘s consent on page load (not fully GDPR)', 'wp-seopress' ) .'</label>';
|
5043 |
+
|
5044 |
+
echo '<p class="description">'.__('The previous option must be checked to use this.','wp-seopress').'</p>';
|
5045 |
+
|
5046 |
+
if (isset($this->options['seopress_google_analytics_half_disable'])) {
|
5047 |
+
esc_attr( $this->options['seopress_google_analytics_half_disable']);
|
5048 |
+
}
|
5049 |
+
}
|
5050 |
+
|
5051 |
public function seopress_google_analytics_opt_out_msg_callback()
|
5052 |
{
|
5053 |
$options = get_option( 'seopress_google_analytics_option_name' );
|
inc/admin/adminbar.php
CHANGED
@@ -100,6 +100,12 @@ function seopress_admin_bar_links() {
|
|
100 |
'href' => admin_url( 'edit.php?post_type=seopress_backlinks' ),
|
101 |
));
|
102 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
104 |
}
|
105 |
add_action( 'admin_bar_menu', 'seopress_admin_bar_links', 99 );
|
100 |
'href' => admin_url( 'edit.php?post_type=seopress_backlinks' ),
|
101 |
));
|
102 |
}
|
103 |
+
$wp_admin_bar->add_menu( array(
|
104 |
+
'parent' => 'seopress_custom_top_level',
|
105 |
+
'id' => 'seopress_custom_sub_menu_wizard',
|
106 |
+
'title' => __( 'Configuration wizard', 'wp-seopress' ),
|
107 |
+
'href' => admin_url( 'admin.php?page=seopress-setup' ),
|
108 |
+
));
|
109 |
}
|
110 |
}
|
111 |
add_action( 'admin_bar_menu', 'seopress_admin_bar_links', 99 );
|
inc/functions/options-google-analytics.php
CHANGED
@@ -581,7 +581,7 @@ function seopress_custom_tracking_hook() {
|
|
581 |
}
|
582 |
|
583 |
if (seopress_google_analytics_enable_option() =='1' && seopress_google_analytics_ua_option() !='') {
|
584 |
-
if (((isset($_COOKIE["seopress-user-consent-accept"]) && $_COOKIE["seopress-user-consent-accept"] =='1') && seopress_google_analytics_disable_option() =='1') || (seopress_google_analytics_disable_option() !='1')) { //User consent cookie OK
|
585 |
if (is_user_logged_in()) {
|
586 |
global $wp_roles;
|
587 |
|
581 |
}
|
582 |
|
583 |
if (seopress_google_analytics_enable_option() =='1' && seopress_google_analytics_ua_option() !='') {
|
584 |
+
if (seopress_google_analytics_half_disable_option() =='1' || (((isset($_COOKIE["seopress-user-consent-accept"]) && $_COOKIE["seopress-user-consent-accept"] =='1') && seopress_google_analytics_disable_option() =='1') || (seopress_google_analytics_disable_option() !='1'))) { //User consent cookie OK
|
585 |
if (is_user_logged_in()) {
|
586 |
global $wp_roles;
|
587 |
|
inc/functions/options-import-export.php
CHANGED
@@ -110,8 +110,15 @@ function seopress_import_redirections_settings() {
|
|
110 |
$csv_type_redirects[3] = '';
|
111 |
}
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
if (!empty($csv_line[0])) {
|
114 |
-
$id = wp_insert_post(array('post_title' => urldecode($csv_line[0]), 'post_type' => 'seopress_404', 'post_status' => 'publish', 'meta_input' => array( '_seopress_redirections_value' => urldecode($csv_line[1]), '_seopress_redirections_type' => $csv_type_redirects[2], '_seopress_redirections_enabled' => $
|
115 |
}
|
116 |
}
|
117 |
}
|
@@ -129,7 +136,7 @@ function seopress_export_redirections_settings() {
|
|
129 |
if( ! current_user_can( 'manage_options' ) )
|
130 |
return;
|
131 |
|
132 |
-
|
133 |
$redirects_html = '';
|
134 |
|
135 |
$args = array(
|
@@ -148,14 +155,16 @@ function seopress_export_redirections_settings() {
|
|
148 |
if ( $seopress_redirects_query->have_posts() ) {
|
149 |
while ( $seopress_redirects_query->have_posts() ) {
|
150 |
$seopress_redirects_query->the_post();
|
151 |
-
$redirects_html .= urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title())));
|
152 |
$redirects_html .= ';';
|
153 |
-
$redirects_html .= urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(),'_seopress_redirections_value',true))));
|
154 |
$redirects_html .= ';';
|
155 |
$redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_type',true);
|
156 |
$redirects_html .= ';';
|
157 |
$redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_enabled',true);
|
158 |
$redirects_html .= ';';
|
|
|
|
|
159 |
$redirects_html .= "\n";
|
160 |
}
|
161 |
wp_reset_postdata();
|
@@ -172,6 +181,57 @@ function seopress_export_redirections_settings() {
|
|
172 |
}
|
173 |
add_action( 'admin_init', 'seopress_export_redirections_settings' );
|
174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
//Reset SEOPress Notices Settings
|
176 |
function seopress_reset_notices_settings() {
|
177 |
if( empty( $_POST['seopress_action'] ) || 'reset_notices_settings' != $_POST['seopress_action'] )
|
110 |
$csv_type_redirects[3] = '';
|
111 |
}
|
112 |
|
113 |
+
//Fifth column: redirections query param
|
114 |
+
if ($csv_line[4] =='exact_match' || $csv_line[4] =='with_ignored_param' || $csv_line[4] =='without_param') {
|
115 |
+
$csv_type_redirects[4] = $csv_line[4];
|
116 |
+
} else {
|
117 |
+
$csv_type_redirects[4] = 'exact_match';
|
118 |
+
}
|
119 |
+
|
120 |
if (!empty($csv_line[0])) {
|
121 |
+
$id = wp_insert_post(array('post_title' => urldecode($csv_line[0]), 'post_type' => 'seopress_404', 'post_status' => 'publish', 'meta_input' => array( '_seopress_redirections_value' => urldecode($csv_line[1]), '_seopress_redirections_type' => $csv_type_redirects[2], '_seopress_redirections_enabled' => $csv_type_redirects[3], '_seopress_redirections_param' => $csv_type_redirects[4])));
|
122 |
}
|
123 |
}
|
124 |
}
|
136 |
if( ! current_user_can( 'manage_options' ) )
|
137 |
return;
|
138 |
|
139 |
+
//Init
|
140 |
$redirects_html = '';
|
141 |
|
142 |
$args = array(
|
155 |
if ( $seopress_redirects_query->have_posts() ) {
|
156 |
while ( $seopress_redirects_query->have_posts() ) {
|
157 |
$seopress_redirects_query->the_post();
|
158 |
+
$redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title())))).'"';
|
159 |
$redirects_html .= ';';
|
160 |
+
$redirects_html .= '"'.urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(),'_seopress_redirections_value',true))))).'"';
|
161 |
$redirects_html .= ';';
|
162 |
$redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_type',true);
|
163 |
$redirects_html .= ';';
|
164 |
$redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_enabled',true);
|
165 |
$redirects_html .= ';';
|
166 |
+
$redirects_html .= get_post_meta(get_the_ID(),'_seopress_redirections_param',true);
|
167 |
+
$redirects_html .= ';';
|
168 |
$redirects_html .= "\n";
|
169 |
}
|
170 |
wp_reset_postdata();
|
181 |
}
|
182 |
add_action( 'admin_init', 'seopress_export_redirections_settings' );
|
183 |
|
184 |
+
//Import Redirections from Redirections plugin JSON file
|
185 |
+
function seopress_import_redirections_plugin_settings() {
|
186 |
+
if( empty( $_POST['seopress_action'] ) || 'import_redirections_plugin_settings' != $_POST['seopress_action'] )
|
187 |
+
return;
|
188 |
+
if( ! wp_verify_nonce( $_POST['seopress_import_redirections_plugin_nonce'], 'seopress_import_redirections_plugin_nonce' ) )
|
189 |
+
return;
|
190 |
+
if( ! current_user_can( 'manage_options' ) )
|
191 |
+
return;
|
192 |
+
$extension = end( explode( '.', $_FILES['import_file']['name'] ) );
|
193 |
+
if( $extension != 'json' ) {
|
194 |
+
wp_die( __( 'Please upload a valid .json file' ) );
|
195 |
+
}
|
196 |
+
$import_file = $_FILES['import_file']['tmp_name'];
|
197 |
+
if( empty( $import_file ) ) {
|
198 |
+
wp_die( __( 'Please upload a file to import' ) );
|
199 |
+
}
|
200 |
+
|
201 |
+
$settings = (array) json_decode( file_get_contents( $import_file ), true );
|
202 |
+
|
203 |
+
foreach ($settings['redirects'] as $redirect_key => $redirect_value) {
|
204 |
+
$type = '';
|
205 |
+
if (!empty($redirect_value['action_code'])) {
|
206 |
+
$type = $redirect_value['action_code'];
|
207 |
+
} else {
|
208 |
+
$type = '301';
|
209 |
+
}
|
210 |
+
|
211 |
+
$param = '';
|
212 |
+
if (!empty($redirect_value['match_data']['source']['flag_query'])) {
|
213 |
+
$flag_query = $redirect_value['match_data']['source']['flag_query'];
|
214 |
+
if ($flag_query =='pass') {
|
215 |
+
$param = 'with_ignored_param';
|
216 |
+
} elseif ($flag_query =='ignore') {
|
217 |
+
$param = 'without_param';
|
218 |
+
} else {
|
219 |
+
$param = 'exact_match';
|
220 |
+
}
|
221 |
+
}
|
222 |
+
|
223 |
+
$enabled ='';
|
224 |
+
if (!empty($redirect_value['enabled'] ==true)) {
|
225 |
+
$enabled ='yes';
|
226 |
+
}
|
227 |
+
|
228 |
+
wp_insert_post(array('post_title' => ltrim(urldecode($redirect_value['url']), '/'), 'post_type' => 'seopress_404', 'post_status' => 'publish', 'meta_input' => array( '_seopress_redirections_value' => urldecode($redirect_value['action_data']['url']), '_seopress_redirections_type' => $type, '_seopress_redirections_enabled' => $enabled, '_seopress_redirections_param' => $param)));
|
229 |
+
}
|
230 |
+
|
231 |
+
wp_safe_redirect( admin_url( 'edit.php?post_type=seopress_404' ) ); exit;
|
232 |
+
}
|
233 |
+
add_action( 'admin_init', 'seopress_import_redirections_plugin_settings' );
|
234 |
+
|
235 |
//Reset SEOPress Notices Settings
|
236 |
function seopress_reset_notices_settings() {
|
237 |
if( empty( $_POST['seopress_action'] ) || 'reset_notices_settings' != $_POST['seopress_action'] )
|
inc/functions/options-sitemap.php
CHANGED
@@ -132,7 +132,7 @@ if (seopress_xml_sitemap_html_enable_option() =='1') {
|
|
132 |
);
|
133 |
if ($cpt_key =='post') {
|
134 |
|
135 |
-
if (get_post_type_archive_link($cpt_key)) {
|
136 |
$content .= '<ul>';
|
137 |
$content .= '<li><a href="'.get_post_type_archive_link($cpt_key).'">'.$obj->labels->name.'</a></li>';
|
138 |
$content .= '</ul>';
|
132 |
);
|
133 |
if ($cpt_key =='post') {
|
134 |
|
135 |
+
if (get_post_type_archive_link($cpt_key) && get_option( 'page_for_posts' ) !=0) {
|
136 |
$content .= '<ul>';
|
137 |
$content .= '<li><a href="'.get_post_type_archive_link($cpt_key).'">'.$obj->labels->name.'</a></li>';
|
138 |
$content .= '</ul>';
|
inc/functions/options.php
CHANGED
@@ -143,6 +143,18 @@ if (seopress_get_toggle_google_analytics_option() =='1') {
|
|
143 |
}
|
144 |
}
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
//Disable Tracking - Message
|
147 |
function seopress_google_analytics_opt_out_msg_option() {
|
148 |
$seopress_google_analytics_opt_out_msg_option = get_option("seopress_google_analytics_option_name");
|
143 |
}
|
144 |
}
|
145 |
|
146 |
+
//Auto accept user consent
|
147 |
+
function seopress_google_analytics_half_disable_option() {
|
148 |
+
$seopress_google_analytics_half_disable_option = get_option("seopress_google_analytics_option_name");
|
149 |
+
if ( ! empty ( $seopress_google_analytics_half_disable_option ) ) {
|
150 |
+
foreach ($seopress_google_analytics_half_disable_option as $key => $seopress_google_analytics_half_disable_value)
|
151 |
+
$options[$key] = $seopress_google_analytics_half_disable_value;
|
152 |
+
if (isset($seopress_google_analytics_half_disable_option['seopress_google_analytics_half_disable'])) {
|
153 |
+
return $seopress_google_analytics_half_disable_option['seopress_google_analytics_half_disable'];
|
154 |
+
}
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
//Disable Tracking - Message
|
159 |
function seopress_google_analytics_opt_out_msg_option() {
|
160 |
$seopress_google_analytics_opt_out_msg_option = get_option("seopress_google_analytics_option_name");
|
inc/functions/sitemap/template-xml-sitemaps-single.php
CHANGED
@@ -131,7 +131,7 @@ function seopress_xml_sitemap_single() {
|
|
131 |
|
132 |
//WooCommerce
|
133 |
global $product;
|
134 |
-
if ($product !='') {
|
135 |
$product_img = $product->get_gallery_image_ids();
|
136 |
}
|
137 |
|
131 |
|
132 |
//WooCommerce
|
133 |
global $product;
|
134 |
+
if ($product !='' && method_exists($product, 'get_gallery_image_ids')) {
|
135 |
$product_img = $product->get_gallery_image_ids();
|
136 |
}
|
137 |
|
languages/wp-seopress-fr_FR.mo
CHANGED
Binary file
|
languages/wp-seopress-fr_FR.po
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: SEOPress\n"
|
4 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
|
5 |
-
"POT-Creation-Date: 2019-06-
|
6 |
-
"PO-Revision-Date: 2019-06-
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: Benjamin DENIS <contact@seopress.org>\n"
|
9 |
"Language: fr_FR\n"
|
@@ -36,34 +36,34 @@ msgid "XML / HTML Sitemap"
|
|
36 |
msgstr "Sitemap XML / HTML"
|
37 |
|
38 |
#: inc/admin/admin-header.php:48 inc/admin/admin.php:187
|
39 |
-
#: inc/admin/admin.php:
|
40 |
msgid "Social Networks"
|
41 |
msgstr "Réseaux Sociaux"
|
42 |
|
43 |
#: inc/admin/admin-header.php:54 inc/admin/admin.php:188
|
44 |
-
#: inc/admin/admin.php:
|
45 |
msgid "Google Analytics"
|
46 |
msgstr "Google Analytics"
|
47 |
|
48 |
#: inc/admin/admin-header.php:60 inc/admin/admin-metaboxes-form.php:58
|
49 |
#: inc/admin/admin.php:189 inc/admin/admin.php:346 inc/admin/admin.php:622
|
50 |
-
#: inc/admin/admin.php:
|
51 |
msgid "Advanced"
|
52 |
msgstr "Avancé"
|
53 |
|
54 |
-
#: inc/admin/admin-header.php:68 inc/admin/admin.php:
|
55 |
msgid "WooCommerce"
|
56 |
msgstr "WooCommerce"
|
57 |
|
58 |
-
#: inc/admin/admin-header.php:74 inc/admin/admin.php:
|
59 |
msgid "Easy Digital Downloads"
|
60 |
msgstr "Easy Digital Downloads"
|
61 |
|
62 |
-
#: inc/admin/admin-header.php:80 inc/admin/admin.php:
|
63 |
msgid "Local Business"
|
64 |
msgstr "Local Business"
|
65 |
|
66 |
-
#: inc/admin/admin-header.php:86 inc/admin/admin.php:
|
67 |
msgid "Dublin Core"
|
68 |
msgstr "Dublin Core"
|
69 |
|
@@ -71,37 +71,37 @@ msgstr "Dublin Core"
|
|
71 |
msgid "Structured Data Types (schema.org)"
|
72 |
msgstr "Types de données structurées (schema.org)"
|
73 |
|
74 |
-
#: inc/admin/admin-header.php:98 inc/admin/admin.php:
|
75 |
msgid "Breadcrumbs"
|
76 |
msgstr "Fil d'Ariane"
|
77 |
|
78 |
-
#: inc/admin/admin-header.php:104 inc/admin/admin.php:
|
79 |
msgid "Google Page Speed"
|
80 |
msgstr "Google Page Speed"
|
81 |
|
82 |
-
#: inc/admin/admin-header.php:111 inc/admin/admin.php:
|
83 |
msgid "robots.txt"
|
84 |
msgstr "robots.txt"
|
85 |
|
86 |
-
#: inc/admin/admin-header.php:118 inc/admin/admin.php:
|
87 |
msgid "Google News Sitemap"
|
88 |
msgstr "Google News Sitemap"
|
89 |
|
90 |
-
#: inc/admin/admin-header.php:124 inc/admin/admin.php:
|
91 |
#: inc/admin/adminbar.php:87
|
92 |
msgid "Redirections"
|
93 |
msgstr "Redirections"
|
94 |
|
95 |
-
#: inc/admin/admin-header.php:130 inc/admin/admin.php:
|
96 |
msgid "Broken links"
|
97 |
msgstr "Liens cassés"
|
98 |
|
99 |
-
#: inc/admin/admin-header.php:136 inc/admin/admin.php:
|
100 |
#: inc/admin/adminbar.php:99
|
101 |
msgid "Backlinks"
|
102 |
msgstr "Backlinks"
|
103 |
|
104 |
-
#: inc/admin/admin-header.php:142 inc/admin/admin.php:
|
105 |
msgid "URL Rewriting"
|
106 |
msgstr "Réécriture d'URL"
|
107 |
|
@@ -109,21 +109,21 @@ msgstr "Réécriture d'URL"
|
|
109 |
msgid "White Label"
|
110 |
msgstr "Marque Blanche"
|
111 |
|
112 |
-
#: inc/admin/admin-header.php:155 inc/admin/admin.php:
|
113 |
msgid ".htaccess"
|
114 |
msgstr ".htaccess"
|
115 |
|
116 |
-
#: inc/admin/admin-header.php:162 inc/admin/admin.php:
|
117 |
msgid "RSS"
|
118 |
msgstr "RSS"
|
119 |
|
120 |
-
#: inc/admin/admin-header.php:168 inc/admin/admin.php:
|
121 |
-
#: inc/admin/admin.php:
|
122 |
msgid "License"
|
123 |
msgstr "Licence"
|
124 |
|
125 |
#: inc/admin/admin-header.php:175 inc/admin/admin.php:190
|
126 |
-
#: inc/admin/admin.php:
|
127 |
msgid "Tools"
|
128 |
msgstr "Outils"
|
129 |
|
@@ -143,7 +143,7 @@ msgstr "Envoyer un retour d'expérience"
|
|
143 |
msgid "Follow us on Twitter (new window)"
|
144 |
msgstr "Suivez-nous sur Twitter (nouvelle fenêtre)"
|
145 |
|
146 |
-
#: inc/admin/admin-header.php:210
|
147 |
msgid "Follow us on Twitter"
|
148 |
msgstr "Suivez-nous sur Twitter"
|
149 |
|
@@ -350,9 +350,11 @@ msgstr "Aucune balise titre personnalisée définie pour cet article."
|
|
350 |
|
351 |
#: inc/admin/admin-metaboxes-content-analysis-form.php:185
|
352 |
#: inc/admin/admin-metaboxes-form.php:109
|
353 |
-
#: inc/admin/admin-metaboxes-form.php:110 inc/admin/admin.php:
|
354 |
-
#: inc/admin/admin.php:
|
355 |
-
#: inc/admin/admin.php:
|
|
|
|
|
356 |
#: inc/functions/options-advanced-admin.php:761
|
357 |
msgid "Meta description"
|
358 |
msgstr "Meta description"
|
@@ -568,20 +570,20 @@ msgstr "Entrez votre titre"
|
|
568 |
msgid "(maximum recommended limit)"
|
569 |
msgstr "(limite maximale recommandée)"
|
570 |
|
571 |
-
#: inc/admin/admin-metaboxes-form.php:101 inc/admin/admin.php:
|
572 |
-
#: inc/admin/admin.php:
|
573 |
msgid "Post Title"
|
574 |
msgstr "Titre du post"
|
575 |
|
576 |
#: inc/admin/admin-metaboxes-form.php:103 inc/admin/admin.php:198
|
577 |
-
#: inc/admin/admin.php:
|
578 |
-
#: inc/admin/admin.php:
|
579 |
-
#: inc/admin/admin.php:
|
580 |
msgid "Site Title"
|
581 |
msgstr "Titre du Site"
|
582 |
|
583 |
-
#: inc/admin/admin-metaboxes-form.php:105 inc/admin/admin.php:
|
584 |
-
#: inc/admin/admin.php:
|
585 |
msgid "Separator"
|
586 |
msgstr "Separateur"
|
587 |
|
@@ -656,8 +658,9 @@ msgstr ""
|
|
656 |
"probablement défini dans les réglages globaux de l'extension."
|
657 |
|
658 |
#: inc/admin/admin-metaboxes-form.php:186
|
659 |
-
#: inc/admin/admin-metaboxes-form.php:187 inc/admin/admin.php:
|
660 |
-
#: inc/admin/admin.php:
|
|
|
661 |
msgid "Canonical URL"
|
662 |
msgstr "URL Canonique"
|
663 |
|
@@ -677,7 +680,8 @@ msgstr ""
|
|
677 |
"Définissez la catégorie qui sera utilisée dans le permalien %category% si "
|
678 |
"vous avez plusieurs catégories."
|
679 |
|
680 |
-
#: inc/admin/admin-metaboxes-form.php:197 inc/admin/admin.php:
|
|
|
681 |
msgid "None (will disable this feature)"
|
682 |
msgstr "Aucun (désactivera cette fonctionnalité)"
|
683 |
|
@@ -718,19 +722,19 @@ msgid "Facebook Thumbnail"
|
|
718 |
msgstr "Miniature Facebook"
|
719 |
|
720 |
#: inc/admin/admin-metaboxes-form.php:228
|
721 |
-
#: inc/admin/admin-metaboxes-form.php:246 inc/admin/admin.php:
|
722 |
-
#: inc/admin/admin.php:
|
723 |
msgid "Select your default thumbnail"
|
724 |
msgstr "Sélectionnez votre miniature par défaut"
|
725 |
|
726 |
-
#: inc/admin/admin-metaboxes-form.php:229 inc/admin/admin.php:
|
727 |
msgid "Minimum size: 200x200px, ideal ratio 1.91:1, 8Mb max."
|
728 |
msgstr "Taille minimum : 200x200px, ratio idéal 1.91:1, 8mo max."
|
729 |
|
730 |
#: inc/admin/admin-metaboxes-form.php:230
|
731 |
#: inc/admin/admin-metaboxes-form.php:248
|
732 |
-
#: inc/admin/admin-metaboxes-form.php:391 inc/admin/admin.php:
|
733 |
-
#: inc/admin/admin.php:
|
734 |
msgid "Upload an Image"
|
735 |
msgstr "Envoyer une image"
|
736 |
|
@@ -761,7 +765,7 @@ msgstr "Entrez votre description Twitter"
|
|
761 |
msgid "Twitter Thumbnail"
|
762 |
msgstr "Miniature Twitter"
|
763 |
|
764 |
-
#: inc/admin/admin-metaboxes-form.php:247 inc/admin/admin.php:
|
765 |
msgid ""
|
766 |
"Minimum size: 144x144px (300x157px with large card enabled), ideal ratio 1:1 "
|
767 |
"(2:1 with large card), 5Mb max."
|
@@ -1024,6 +1028,489 @@ msgstr "Ajouter une vidéo"
|
|
1024 |
msgid "Content analysis"
|
1025 |
msgstr "Analyse de contenu"
|
1026 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|