Already reported to their support. I also submitted similar issue: https://wordpress.org/support/topic/bug-with-button-in-new-7-0/
Solution is to revert back to 5.13.3 which is the version right before 7.0 when they made the change that broke the permalinks. Then ensure, to click “Shortcodes Ultimate” in plugins, and choose it to NOT auto-update.
They won’t reverse back, as made permanent change for security. They said only way is to change all URLS to full URL. However this isn’t choice for some, as we have hundreds of links without full URL.
SOLUTION:
Since 7.0.1, a button/tab with URL “../page-here”, no longer returns user to https://site.com/course/page-here, but to “../page-here”.
To fix, copy below files from version 7.0.0:
1) In: /public_html/wp-content/plugins/shortcodes-ultimate/includes/shortcodes/button.php
2) In: /public_html/wp-content/plugins/shortcodes-ultimate/includes/shortcodes/members.php
3) In: /public_html/wp-content/plugins/shortcodes-ultimate/includes/shortcodes/tabs.php
Plugin Author
Vova
(@gn_themes)
I’m not sure this must be a part of the plugin, but I understand that some users may need this. If you want to use relative URLs, add the following snippet to the end of the functions.php
file of your theme:
add_filter('shortcode_atts_button', function ($out, $pairs, $atts, $shortcode) {
if (strpos($out['url'], '..') !== false) {
$path = rtrim($_SERVER['REQUEST_URI'], '/') . '/' . ltrim($out['url'], '/');
do {
$path = preg_replace('/[^\/]+\/\.\.\//', '', $path, 1, $count);
} while ($count);
$protocol = empty($_SERVER['HTTPS']) ? 'http' : 'https';
$url = "{$protocol}://{$_SERVER['HTTP_HOST']}{$path}";
$out['url'] = esc_url($url) === $url ? $url : $out['url'];
}
return $out;
}, 10, 4);
This should turn your relative URLs into absolute ones automatically, like so:
Page URL value Result
-------------------------------------------------------
https://wp.org/ ../123/ https://wp.org/
https://wp.org/abc/ ../123/ https://wp.org/123/