Adding JS function as third parameter in do_action

I have this JS function named as “myjsfunction()”.

function myjsfunction() {

jQuery('#html_admin_show').hide();
jQuery('#html_admin_edit').show();

}

One limitation is that I cannot edit the original JS function like to put some PHP tags, etc.

Read More

How is it possible to call this JS function inside a WordPress do_action hook?

I’m preferring to add it as third parameter because I’m already using the second parameter, so something like:

do_action('myhelp', 'mysecondfunction', 'myjsfunction');

But it is not showing the element #html_admin_edit when the page runs. Any ideas how to call this function?

Thanks.

Related posts

Leave a Reply

1 comment

  1. First, your callback must be PHP:

    function myjsfunction_callback() {
    ?>
    <script>myjsfunction();</script>
    <?php
    }
    

    Second, you can add multiple callbacks to one action:

    add_action( 'myhelp', 'myjsfunction_callback' );
    add_action( 'myhelp', 'mysecondfunction' );
    

    Now, you can call do_action() without parameter …

    do_action( 'myhelp' );
    

    … and both callbacks will be executed.


    I reply to your comment: You can use just one callback:

    do_action( 'myhelp', 'mysecondfunction', 'myjsfunction_callback' );
    

    You have to use a rather abstract callback then, and accept more parameters:

    add_action( 'myhelp', 'multicall', 10, 99 );
    
    function multicall()
    {
        $functions = func_get_args();
    
        foreach ( $functions as $function )
        {
            if ( function_exists( $function ) )
                $function();
        }
    }
    

    Now you can pass up to 99 function names, and all of them will be executed for that action.