Skip to content

Commit d5caa3b

Browse files
committed
fix functions to localize script
1 parent d75f1db commit d5caa3b

File tree

1 file changed

+48
-31
lines changed

1 file changed

+48
-31
lines changed

src/welcome/useful-plugins.php

Lines changed: 48 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -107,32 +107,13 @@ public function get_useful_plugins_info() {
107107

108108
foreach ( self::$PLUGINS as $key => $plugin ) {
109109
$status = 'not_installed';
110-
$action_link = '';
111-
112-
if ( $current_user_cap === 2 ) { // user can install plugins
113-
$action_link = wp_nonce_url(
114-
add_query_arg( [
115-
'action' => 'install-plugin',
116-
'plugin' => $plugin['slug'],
117-
], admin_url( 'update.php' ) ),
118-
'install-plugin_' . $plugin['slug']
119-
);
120-
}
121110

122111
if ( isset( $all_plugins[ $plugin['full_slug'] ] ) ) {
123112
$status = 'installed';
124-
$action_link = wp_nonce_url(
125-
add_query_arg( [
126-
'action' => 'activate',
127-
'plugin' => $plugin['full_slug'],
128-
], admin_url( 'plugins.php' ) ),
129-
'activate-plugin_' . $plugin['full_slug']
130-
);
131113
}
132114

133115
if ( is_plugin_active( $plugin['full_slug'] ) ) {
134116
$status = 'activated';
135-
$action_link = ''; // nothing to do
136117
}
137118

138119
$plugin_info = plugins_api( 'plugin_information', [
@@ -152,21 +133,57 @@ public function get_useful_plugins_info() {
152133
}
153134

154135
// Make Cimo available in the block editor
155-
add_filter( 'stackable_localize_script', function ( $args ) use( $data_to_localize, $action_link ) {
156-
$cimo_data = $data_to_localize[ 'cimo-image-optimizer' ];
157-
$cimo_data[ 'action' ] = html_entity_decode( $action_link );
158-
$cimo_data['nonce'] = wp_create_nonce( 'stackable_cimo_status' );
136+
$this->add_cimo_args_to_localize_editor( $data_to_localize, $current_user_cap );
137+
// Make all plugin data and the ajax url available in the admin settings
138+
$this->add_args_to_localize_admin( $data_to_localize );
139+
}
140+
141+
public function add_cimo_args_to_localize_editor( $data_to_localize, $current_user_cap ) {
142+
$slug = 'cimo-image-optimizer';
143+
$full_slug = self::$PLUGINS[ $slug ][ 'full_slug' ];
144+
145+
$cimo_data = $data_to_localize[ $slug ];
146+
$cimo_data['nonce'] = wp_create_nonce( 'stackable_cimo_status' );
147+
$action_link = '';
148+
149+
if ( $current_user_cap === 2 && $cimo_data[ 'status' ] === 'not_installed' ) {
150+
$action_link = wp_nonce_url(
151+
add_query_arg(
152+
[
153+
'action' => 'install-plugin',
154+
'plugin' => $slug,
155+
],
156+
admin_url( 'update.php' )
157+
),
158+
'install-plugin_' . $slug
159+
);
160+
} else if ( $current_user_cap >= 1 && $cimo_data[ 'status' ] === 'installed' ) {
161+
$action_link = wp_nonce_url(
162+
add_query_arg( [
163+
'action' => 'activate',
164+
'plugin' => $full_slug,
165+
], admin_url( 'plugins.php' ) ),
166+
'activate-plugin_' . $full_slug
167+
);
168+
}
169+
170+
$cimo_data[ 'action' ] = $action_link;
171+
172+
add_filter( 'stackable_localize_script', function ( $args ) use( $cimo_data ) {
159173
return $this->add_localize_script( $args, 'cimo', $cimo_data );
160174
}, 1 );
161175

162-
// Make all plugin data and the ajax url available in the admin settings
163-
add_filter( 'stackable_localize_settings_script', function ( $args ) use( $data_to_localize ) {
164-
$argsToAdd = array(
165-
'usefulPlugins' => $data_to_localize,
166-
'installerNonce' => wp_create_nonce( "updates" ),
167-
'activateNonce' => wp_create_nonce( "stk_activate_useful_plugin" ),
168-
'ajaxUrl' => admin_url('admin-ajax.php')
169-
);
176+
}
177+
178+
public function add_args_to_localize_admin( $data_to_localize ) {
179+
$argsToAdd = array(
180+
'usefulPlugins' => $data_to_localize,
181+
'installerNonce' => wp_create_nonce( "updates" ),
182+
'activateNonce' => wp_create_nonce( "stk_activate_useful_plugin" ),
183+
'ajaxUrl' => admin_url('admin-ajax.php')
184+
);
185+
186+
add_filter( 'stackable_localize_settings_script', function ( $args ) use( $argsToAdd ) {
170187
return $this->add_localize_script( $args, '', $argsToAdd );
171188
} );
172189
}

0 commit comments

Comments
 (0)