0

When I call a function in PHP using ajax I get Uncaught (in promise) ReferenceError: ajax_object is not defined

html2canvas(document.getElementById("primary")).then(function(canvas) {
                        console.log("image_base64: ", canvas);


                        var data = {
                            'action': 'bingogames_canvas_save',
                            'play_id': play_id,
                            'image_base64': canvas.toDataURL()
                        };
                        jQuery.post(ajax_object.ajax_url, data, function(response) {
                            console.log('Got this from the server: ', response);
                        });

                    });

My jQuery function is in a template file. How am I supposed to enqueue the template file?

add_action( 'init', 'my_script_enqueuer' );
function my_script_enqueuer() {

wp_localize_script( 'add-order-front', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );

 wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'add-order-front' );

}

Please help thank you.

1

As Codex says,

IMPORTANT! wp_localize_script() MUST be called after the script has been registered using wp_register_script() or wp_enqueue_script().

add_action( 'init', 'my_script_enqueuer' );
function my_script_enqueuer() {
  wp_enqueue_script( 'jquery' );
  # before enqueue,if not register then register  
  wp_enqueue_script( 'add-order-front' );
  wp_localize_script( 'add-order-front', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
  • 1
    it works, thank you very much :) – rohithr Dec 19 '19 at 10:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.