-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4915 from Automattic/develop
Staging release v20231003.1
- Loading branch information
Showing
25 changed files
with
803 additions
and
509 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
<?php | ||
/** | ||
* Integration: VIP Governance. | ||
* | ||
* @package Automattic\VIP\Integrations | ||
*/ | ||
|
||
namespace Automattic\VIP\Integrations; | ||
|
||
/** | ||
* Loads VIP Governance. | ||
* | ||
* @private | ||
*/ | ||
class VipGovernanceIntegration extends Integration { | ||
|
||
/** | ||
* The version of the VIP Governance plugin to load, that's set to the latest version. | ||
* This should be higher than the lowestVersion set in "vip-governance" config (https://github.com/Automattic/vip-go-mu-plugins-ext/blob/trunk/config.json) | ||
* | ||
* @var string | ||
*/ | ||
protected string $version = '1.0'; | ||
|
||
/** | ||
* Returns `true` if `VIP Governance` is already available e.g. via customer code. We will use | ||
* this function to prevent activating of integration from platform side. | ||
*/ | ||
public function is_loaded(): bool { | ||
return defined( 'VIP_GOVERNANCE_LOADED' ); | ||
} | ||
|
||
/** | ||
* Applies hooks to load VIP Governance plugin. | ||
* | ||
* @private | ||
*/ | ||
public function load(): void { | ||
// Wait until plugins_loaded to give precedence to the plugin in the customer repo. | ||
add_action( 'plugins_loaded', function () { | ||
// Return if the integration is already loaded. | ||
// | ||
// In activate() method we do make sure to not activate the integration if its already loaded | ||
// but still adding it here as a safety measure i.e. if load() is called directly. | ||
if ( $this->is_loaded() ) { | ||
return; | ||
} | ||
|
||
// Load the version of the plugin that should be set to the latest version, otherwise if it's not found deactivate the integration. | ||
$load_path = WPMU_PLUGIN_DIR . '/vip-integrations/vip-governance-' . $this->version . '/vip-governance.php'; | ||
if ( file_exists( $load_path ) ) { | ||
require_once $load_path; | ||
} else { | ||
$this->is_active = false; | ||
} | ||
} ); | ||
} | ||
|
||
/** | ||
* Configure `VIP Governance` for VIP Platform. | ||
*/ | ||
public function configure(): void {} | ||
} |
Oops, something went wrong.