Tori Ajax

Description

Developers can now add Ajax by passing three parameters (name of action, PHP callback, and javascript path) to the toria_add_ajax() function using the Tori Ajax plugin.

Documentation

Please check out the Tori Ajax plugin Documentation

About

This is an easy-to-use dev tool for adding Ajax in word press.

Screenshots

  • Sample theme functions PHP code
  • Sample Javascript code
  • Sample theme functions PHP code for authenticated and non-authenticated Ajax actions.
  • Sample theme functions PHP code for authenticated Ajax actions.
  • Sample theme functions PHP code for non-authenticated Ajax actions.

Installation

  1. Upload tori-ajax folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add custom code to add ajax in your theme functions or anywhere else desirable. For example:
 function my_simple_ajax() {
    // Magic happens here.
    echo json_encode( 'Welcome to Tori Ajax' );
}

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js'
    );
}
  1. Create a javascript file in the inc/my_custom_ajax/toria_ajax.js.
  2. Add Javascript code. For example:
function tori_ajax() {
    jQuery.ajax({
        type: "post",
        url: toria.ajax_url, // admin-ajax.php path,
        data: {
            action: toria.action, // action
            nonce: toria.nonce,   // pass the nonce here
        },
        success: function (data) {
            console.log(data.trim());
            //alert(data.trim());
        },
        error: function (errorThrown) {
            console.log(errorThrown);
        }
    });
}
tori_ajax();// call the function.

FAQ

How to solve toria_add_ajax() is undefined?

  • By ensuring the Tori Ajax plugin is installed.
  • Use the if statement to check if the toria_add_ajax() exists first before using it. For example:
    ~~~~
    if ( function_exists( ‘toria_add_ajax’ ) ) {
    toria_add_ajax(
    ‘simple’,
    ‘my_simple_ajax’,
    get_stylesheet_directory_uri() . ‘/inc/my_custom_ajax/toria_ajax.js’
    );
    }
    ~~~~

How to register action for both logged in and non logged in users?

You can use the fourth parameter to set the mode to ‘both’.
By default, the mode is set to ‘private’ for authenticated Ajax actions for logged-in users.
You can also use ‘public’ to expose the Ajax action to non-authenticated Ajax actions for logged-out users
Summary
both – For exposing the Ajax action to authenticated Ajax actions for logged-in users and non-authenticated Ajax actions for logged-out users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'both'
    );
}

private – For exposing the Ajax action to authenticated Ajax actions for logged-in users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'private'
    );
}

Or

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js'
    );
}

public – For exposing the Ajax action to non-authenticated Ajax actions for logged-out users.
Example

if ( function_exists( 'toria_add_ajax' ) ) {
    toria_add_ajax(
        'simple',
        'my_simple_ajax',
        get_stylesheet_directory_uri() . '/inc/my_custom_ajax/toria_ajax.js',
        'public'
    );
}

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Tori Ajax” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Tori Ajax” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • The beginning of the Tori Ajax plugin.

1.0.1

  • Fixed: Uncaught ArgumentCountError during the nonce check.
  • Added JSON output for nonce messages.

1.0.2

  • Added 3 optional arguments to toria_add_ajax() function:

    1. $script_depends (string[]) (Optional) An array of registered script handles this script depends on. Default value: array().
    2. $script_version (string|bool|null) (Optional) String specifying script version number, if it has one, which is added to the URL as a query string for cache busting purposes. If the version is set to false, a version number is automatically added equal to the current installed Tori Ajax version. If set to null, no version is added. Default value: false.
    3. $script_in_footer (bool) (Optional) Whether to enqueue the script before instead of in the . Default ‘false’.
  • Added support for PHP version 5.6.20 and above

  • Added compatibility of WordPress Version 3.0 and above

1.0.3

  • Fixed: PHP Notice undefined variable: allowed_html

1.1.0

  • Compatible with WordPress 6.0.
  • Added filters:
    apply_filters( ‘toria/ajax/action’, $action );
    apply_filters( ‘toria/ajax/php_callback’, $php_callback, $action );
    apply_filters( ‘toria/ajax/script_path’, $script_path, $action, $php_callback );
    apply_filters( ‘toria/ajax/mode’, $mode, $action, $php_callback, $script_path );
    apply_filters( ‘toria/ajax/nonce’, $nonce, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_object’, $ajax_object, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_handle’, $ajax_handle, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_depends’, $script_depends, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_version’, $script_version, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/script_in_footer’, $script_in_footer, $action, $php_callback, $script_path, $mode );
    apply_filters( ‘toria/ajax/ajax_variables’, $ajax_variables, $action, $php_callback, $script_path, $mode );

1.2.0

*Added more parameters to some filters.
*The affected filters are:
apply_filters( ‘toria/ajax/ajax_object’, $ajax_object, $action, $php_callback, $script_path, $mode, $nonce );
apply_filters( ‘toria/ajax/ajax_handle’, $ajax_handle, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object );
apply_filters( ‘toria/ajax/script_depends’, $script_depends, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle );
apply_filters( ‘toria/ajax/script_version’, $script_version, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends );
apply_filters( ‘toria/ajax/script_in_footer’, $script_in_footer, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends, $script_version );
apply_filters( ‘toria/ajax/ajax_variables’, $ajax_variables, $action, $php_callback, $script_path, $mode, $nonce, $ajax_object, $ajax_handle, $script_depends, $script_version, $script_in_footer );

2.0.0

  • Compatible with WordPress 6.1.1.
  • Fix: Ajax in private mode is only accessible by signed-in users and those in public are only accessible by signed-out users.
  • Pro version available.

2.0.1

  • Fixed a PHP Deprecated notice.

2.0.2

  • Added plugin meta links in wp-admin/plugins.php