You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.2 KiB
PHP

<?php
/**
* @package Freemius
* @copyright Copyright (c) 2015, Freemius, Inc.
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
* @since 1.1.7
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Find the plugin main file path based on any given file inside the plugin's folder.
*
* @author Vova Feldman (@svovaf)
* @since 1.1.7.1
*
* @param string $file Absolute path to a file inside a plugin's folder.
*
* @return string
*/
function fs_find_direct_caller_plugin_file( $file ) {
/**
* All the code below will be executed once on activation.
* If the user changes the main plugin's file name, the file_exists()
* will catch it.
*/
$all_plugins = fs_get_plugins( true );
$file_real_path = fs_normalize_path( realpath( $file ) );
// Get active plugin's main files real full names (might be symlinks).
foreach ( $all_plugins as $relative_path => $data ) {
if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) . '/' ) ) ) {
if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
return $relative_path;
}
}
}
return null;
}