Yes. You can do. Try using ajax, or better? using wordpress rest api Ajax method: need register your function and action to do Simple example: add_action( 'wp_ajax_my_action', 'my_action' ); add_action( 'wp_ajax_nopriv_my_action', 'my_action' ); function my_action() { return json_encode('hello word'); } ```js jQuery(document).ready(function() { var data = { 'action': 'my_action' }; jQuery.post(ajax_url, data, function(response) { alert(response); }); }); ``` More info for ajax: https://codex.wordpress.org/AJAX_in_Plugins Wordpress rest api: need to register a route very simple example: add_action( 'rest_api_init', function () { register_rest_route( 'yourName/v1', '/myroute', array( 'methods' => 'POST', 'callback' => 'my_function', ) ); } ); function my_function( $data ) { return 'Hello World'; } ```js jQuery(document).ready(function() { jQuery.post('/wp-json/yourName/v1/myroute', function(response) { alert(response); }); }); ``` More info: https://developer.wordpress.org/rest-api/