OP#499 - Explain PS Plugin to customer in WP Admin #2

Merged
gdh merged 7 commits from feature/OP#499-explain-patchstack-plugin-to-customer-in-wp-admin into main 2025-12-15 10:10:19 +00:00
7 changed files with 420 additions and 94 deletions
Showing only changes of commit 7892d30d22 - Show all commits

View File

@@ -272,26 +272,26 @@ class HostingSupport1984 {
*
* @return string[]
*/
private function get_protected_plugins(): array {
// Always protect this plugin from deactivation/deletion.
$own = plugin_basename( __FILE__ );
$protected = array( $own );
private function get_protected_plugins(): array {
// Always protect this plugin from deactivation/deletion.
$own = plugin_basename( __FILE__ );
$protected = array( $own );
// Additionally protect Patchstack - but only while it is active.
if ( $this->is_patchstack_active() ) {
$protected[] = 'patchstack/patchstack.php';
}
// Additionally protect Patchstack - but only while it is active.
if ( $this->is_patchstack_active() ) {
$protected[] = 'patchstack/patchstack.php';
saevar marked this conversation as resolved Outdated
Outdated
Review

Indent using spaces for some reason - should be tabs.

Indent using spaces for some reason - should be tabs.
}
return $protected;
}
return $protected;
}
/**
* Intercept admin actions attempting to deactivate or delete protected plugins and block them.
*/
public function protect_plugins_admin_actions() {
// Collect requested action(s).
$action = isset( $_REQUEST['action'] ) ? sanitize_key( (string) $_REQUEST['action'] ) : '';
$action2 = isset( $_REQUEST['action2'] ) ? sanitize_key( (string) $_REQUEST['action2'] ) : '';
public function protect_plugins_admin_actions() {
// Collect requested action(s).
$action = isset( $_REQUEST['action'] ) ? sanitize_key( (string) $_REQUEST['action'] ) : '';
$action2 = isset( $_REQUEST['action2'] ) ? sanitize_key( (string) $_REQUEST['action2'] ) : '';
$targets = array();
if ( ! empty( $_REQUEST['plugin'] ) ) {
@@ -319,15 +319,15 @@ class HostingSupport1984 {
return;
}
$protected = $this->get_protected_plugins();
$intersect = array_intersect( $targets, $protected );
if ( ! empty( $intersect ) ) {
wp_die(
__( 'For security, this action is blocked: 1984 Hosting Support cannot be deactivated or deleted. Patchstack cannot be deactivated or deleted while it is active.', 'hostingsupport1984' ),
403
);
}
}
$protected = $this->get_protected_plugins();
$intersect = array_intersect( $targets, $protected );
if ( ! empty( $intersect ) ) {
wp_die(
__( 'For security, this action is blocked: 1984 Hosting Support cannot be deactivated or deleted. Patchstack cannot be deactivated or deleted while it is active.', 'hostingsupport1984' ),
403
);
}
}
}
saevar marked this conversation as resolved Outdated
Outdated
Review

Nota define() - er venjan.

Nota `define()` - er venjan.
$hosting_support_1984 = new HostingSupport1984();