I think you need to feed the developer some more carrots.
2.5.4 did not fix the problem, so I looked at your code.
The plugin_action_links
is being called wrong. If the filter uses the basename of your plugin it should be called in the main plugin file (the one which is initially loaded) which in your case is twinesocial-widget.php.
So remove this function from /lib/functions.php
add_filter( 'plugin_action_links' , 'add_action_links' );
function add_action_links ( $links ) {
$links[] = '<a href="'. get_admin_url(null, 'admin.php?page=twinesocial-key-setting') .'">Build My Hub</a>';
$links[] = '<a href="https://www.twinesocial.com/" target="_blank">Learn More About Twine<a>';
return $links;
}
and instead put this function in twinesocial-widget.php.
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'add_action_links' );
function add_action_links ( $links ) {
$links[] = '<a href="'. get_admin_url(null, 'admin.php?page=twinesocial-key-setting') .'">Build My Hub</a>';
$links[] = '<a href="https://www.twinesocial.com/" target="_blank">Learn More About Twine<a>';
return $links;
}
There are other ways of doing this but that is a simple solution.
Also after looking at this plugin code I am very concerned about a freemium plugin that does not prefixes function names. You have functions like add_action_links
… yet some functions have a prefix like twinesocial
, please be consistent and prefix all your functions.
Thanks