This is not an error. It is just a PHP Notice.
Thread Starter
Joel
(@joellisenby)
Thanks, edited post. It still wasn’t showing before the update. The plugin should run a check to ensure the index exists.
Thread Starter
Joel
(@joellisenby)
Example fix:
Original
if ( $aioseop_options['aiosp_can_set_protocol'] == 'http' ) {
$url = preg_replace( '/^https:/i', 'http:', $url );
}
if ( $aioseop_options['aiosp_can_set_protocol'] == 'https' ) {
$url = preg_replace( '/^http:/i', 'https:', $url );
}
Change to
if ( !empty( $aioseop_options['aiosp_can_set_protocol'] ) && $aioseop_options['aiosp_can_set_protocol'] == 'http' ) {
$url = preg_replace( '/^https:/i', 'http:', $url );
}
if ( !empty( $aioseop_options['aiosp_can_set_protocol'] ) && $aioseop_options['aiosp_can_set_protocol'] == 'https' ) {
$url = preg_replace( '/^http:/i', 'https:', $url );
}
Thanks Joel,
We’ll take care of this for the next release.
Get the same message/notice with version 2.3.5.1 at my website .
Notice: Undefined index: aiosp_can_set_protocol in /home/www/web403/html/wp/wp-content/plugins/all-in-one-seo-pack/aioseop_class.php on line 3996
Notice: Undefined index: aiosp_can_set_protocol in /home/www/web403/html/wp/wp-content/plugins/all-in-one-seo-pack/aioseop_class.php on line 3999
Hi Bessingen,
Thank you for the report. This was just a quick fix release for users of old WordPress versions.
The next version will have the fix for this notice.
Michael
Thanks for the fast response – great plugin! 🙂
Hi Joel and Bessingen,
Only a few people have reported this notice, and we’re unable to reproduce it.
While we could just do a !empty check (and we will), my concern is why there’s no value in the first place.
If either of you would be willing, I’d love to have access to your site to figure out if there’s another underlying issue causing there to be no value in the options array.
If you’re interested in letting me take a peak under the hood, I’ll be happy to give you a free lifetime license for All in One SEO Pack Pro. 🙂
https://semperplugins.com/contact/
Hi Michael
Today I activate the plugin again and notice is gone!?
Don’t know why, but it disappears.
I would contact you, if the notice comes again, ok?
Ok great, let me know and I’ll check it out.
Thread Starter
Joel
(@joellisenby)
I unfortunately cannot share access to the client’s website.
I did do a find in files on your plugin and I did notice that the aioseop_options[“aiosp_can_set_protocol”] option is never actually set anywhere in the plugin.
On installation it’s set to the default of ‘auto,’ and can be changed to HTTP or HTTPS on the General Settings page.
There should be no way it can ever be unset or empty in the database, and by extension in the options array.
I inadvertently removed the !empty check int he latest version, and will add it back in the next, but the larger concern is why there’s a notice of it being undefined in the first place. Unfortunately I can’t replicate it so I need to see it on someone’s site who is having the problem.
If you change your mind I’ll be happy to sign a non-disclosure, as well as give you a license Pro. 🙂
Thread Starter
Joel
(@joellisenby)
I see that it is set. I am wondering if it has something to do with
'condshow' => Array( 'aiosp_can' => 'on' )
in
'can_set_protocol' => Array(
'name' => __( 'Set Protocol For Canonical URLs:', 'all-in-one-seo-pack' ),
'type' => 'radio',
'default' => 'auto',
'initial_options' => Array(
'auto' => __( 'Auto', 'all-in-one-seo-pack' ),
'http' => __( 'HTTP', 'all-in-one-seo-pack' ),
'https' => __( 'HTTPS', 'all-in-one-seo-pack' )
),
'condshow' => Array( 'aiosp_can' => 'on' )
),
No that just fires some javascript to hide it in the HTML on the options page. It doesn’t actually make the option not have a value.