I've encountered this issue a few times before. It's a simple matter of adding this to the top of your plugin beneath the comments block. It appears that the way plugin_basename returns the value doesn't play nicely with much else.
$basename = plugin_basename(__FILE__);
Then replace this line:
define( 'SEND_INVITATION_PLUGIN_BASENAME', plugin_basename(__FILE__) );
With this instead:
define( 'SEND_INVITATION_PLUGIN_BASENAME', $basename );
Updated based on feedback.
So it appears you're not getting accessing to the function plugin_basename, for the sake of a temporary workaround in your plugin add this function.
function the_plugin_basename($file) {
$file = str_replace('\\','/',$file); // sanitize for Win32 installs
$file = preg_replace('|/+|','/', $file); // remove any duplicate slash
$plugin_dir = str_replace('\\','/',WP_PLUGIN_DIR); // sanitize for Win32 installs
$plugin_dir = preg_replace('|/+|','/', $plugin_dir); // remove any duplicate slash
$mu_plugin_dir = str_replace('\\','/',WPMU_PLUGIN_DIR); // sanitize for Win32 installs
$mu_plugin_dir = preg_replace('|/+|','/', $mu_plugin_dir); // remove any duplicate slash
$file = preg_replace('#^' . preg_quote($plugin_dir, '#') . '/|^' . preg_quote($mu_plugin_dir, '#') . '/#','',$file); // get relative path from plugins dir
$file = trim($file, '/');
return $file;
}
Then in your plugin change any references to the function plugin_basename()
, to the_plugin_basename()
instead. This will get us past the error of not being able to call that function and with a little luck, we might see another error telling us what is going on.