@@ -44,6 +44,7 @@ public function __construct() {
4444 // Stop crons on uninstall
4545 register_deactivation_hook (__FILE__ , array ( $ this , 'deactivate_scheduled_cron ' ));
4646
47+ add_action ( 'wp_loaded ' , array ($ this , 'create_plugin_capabilities ' ));
4748 // Hook into the admin menu
4849 add_action ( 'admin_menu ' , array ( $ this , 'create_plugin_settings_page ' ) );
4950
@@ -245,20 +246,22 @@ function vercelDeploy() {
245246 });
246247 </script> <?php
247248 }
249+ public function create_plugin_capabilities () {
250+ $ role = get_role ('administrator ' );
251+ $ role ->add_cap ( 'vercel_deploy_capability ' , true );
252+ $ role ->add_cap ( 'vercel_adjust_settings_capability ' , true );
253+ }
248254
249255 /**
250256 * Plugin Menu Items Setup
251257 *
252258 * @since 1.0.0
253259 **/
254260 public function create_plugin_settings_page () {
255- $ run_deploys = apply_filters ( 'vercel_deploy_capability ' , 'manage_options ' );
256- $ adjust_settings = apply_filters ( 'vercel_adjust_settings_capability ' , 'manage_options ' );
257-
258- if ( current_user_can ( $ run_deploys ) ) {
261+ if ( current_user_can ('vercel_deploy_capability ' ) ) {
259262 $ page_title = __ ('Deploy to vercel ' , 'vercel-deploy-hooks ' );
260263 $ menu_title = __ ('Deploy ' , 'vercel-deploy-hooks ' );
261- $ capability = $ run_deploys ;
264+ $ capability = ' vercel_deploy_capability ' ;
262265 $ slug = 'deploy_webhook_fields ' ;
263266 $ callback = array ( $ this , 'plugin_settings_page_content ' );
264267 $ icon = 'dashicons-admin-plugins ' ;
@@ -267,20 +270,20 @@ public function create_plugin_settings_page() {
267270 add_menu_page ( $ page_title , $ menu_title , $ capability , $ slug , $ callback , $ icon , $ position );
268271 }
269272
270- if ( current_user_can ( $ adjust_settings ) ) {
273+ if ( current_user_can ( ' vercel_adjust_settings_capability ' ) ) {
271274 $ sub_page_title = __ ('Schedule Builds ' , 'vercel-deploy-hooks ' );
272275 $ sub_menu_title = __ ('Schedule Builds ' , 'vercel-deploy-hooks ' );
273- $ sub_capability = $ adjust_settings ;
276+ $ sub_capability = ' vercel_adjust_settings_capability ' ;
274277 $ sub_slug = 'schedule_webhook_fields ' ;
275278 $ sub_callback = array ( $ this , 'plugin_settings_schedule_content ' );
276279
277280 add_submenu_page ( $ slug , $ sub_page_title , $ sub_menu_title , $ sub_capability , $ sub_slug , $ sub_callback );
278281 }
279282
280- if ( current_user_can ( $ adjust_settings ) ) {
283+ if ( current_user_can ( ' vercel_adjust_settings_capability ' ) ) {
281284 $ sub_page_title = __ ('Settings ' , 'vercel-deploy-hooks ' );
282285 $ sub_menu_title = __ ('Settings ' , 'vercel-deploy-hooks ' );
283- $ sub_capability = $ adjust_settings ;
286+ $ sub_capability = ' vercel_adjust_settings_capability ' ;
284287 $ sub_slug = 'developer_webhook_fields ' ;
285288 $ sub_callback = array ( $ this , 'plugin_settings_developer_content ' );
286289
@@ -487,8 +490,7 @@ public function field_callback( $arguments ) {
487490 * @since 1.0.0
488491 **/
489492 public function add_to_admin_bar ( $ admin_bar ) {
490- $ run_deploys = apply_filters ( 'vercel_deploy_capability ' , 'manage_options ' );
491- if ( current_user_can ( $ run_deploys ) ) {
493+ if ( current_user_can ( 'vercel_deploy_capability ' ) ) {
492494 $ webhook_address = get_option ( 'webhook_address ' );
493495 if ( $ webhook_address ) {
494496 $ button = array (
0 commit comments