Home > Back-end >  Execute PHP function from AJAX button
Execute PHP function from AJAX button

Time:07-08

Using wordpress plugin "Code Snippets" - How could I take a php function like the one below and turn it into an Ajax button inside of elementor?

Essentially... i'd really like to know how I can take any PHP function and execute it from an Ajax button.

Thanks so much for your help! Clearly I have no idea what I'm taking about.

Function:

add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
    if ( isset( $_GET['clear-cart'] ) ) {
        global $woocommerce;
        $woocommerce->cart->empty_cart();
    }
}

CodePudding user response:

you can put the php function inside a php file and do a ajax call to execute the php script and you can use the response data like below:

$.ajax({
        url: "functionfile.php",
        type: "post",
        data: values ,
        success: function (response) {

           // You will get response from your PHP page (what you echo or print)
        },
        error: function(jqXHR, textStatus, errorThrown) {
           console.log(textStatus, errorThrown);
        }
    });

CodePudding user response:

You need to checkout the code here I created the admin hook to clear the cart using ajax

<?php

// Ajax Action 
add_action('wp_ajax_customAjax', 'customAjax');
add_action('wp_ajax_nopriv_customAjax', 'customAjax');
function customAjax() {
    global $woocommerce;
    $woocommerce->cart->empty_cart();
    echo json_encode(array('msg' => 'done'));
    exit;
}

// Ajax JavaScript Call
add_action( 'wp_footer', 'clearCart' );
function clearCart()
{
    ?>
    <script>
    function customAjax() {
        var my_repeater_ajax_url = '<?php echo admin_url('admin-ajax.php'); ?>';
        jQuery.post(
            my_repeater_ajax_url, {
                'action': 'customAjax',
            },
            function (json) {
                if(json['msg'] == 'done')
                {
                    location.reload();
                }
            },
            'json'
        );
    }
    </script>
    <?php
}
  • Related