在AJAX上,调用会话正在破坏WordPress插件

时间:2014-11-28 14:19:11

标签: php jquery ajax wordpress

我通过admin-ajax.php从WordPress插件调用AJAX函数。但是当发送请求时,它会破坏会话。

我有一个数组,其中每个请求都保存数据,但是在每个请求中都会销毁先前的数据。

我打电话的AJAX代码:

function cartbox()
{
    var url = {
                        'action':'my_cart_action',
                        'rnd':Math.random(),
                        };
    $.ajax({
        type:'POST',
        data:url,
        url: "http://localhost/vmlogic/wp-admin/admin-ajax.php",
        success : function(response)
            {
                $("#cartdiv").html(response);
            }
    });  
}

在插件索引文件中我称之为:

class cloud_calculator{

    // Call a cation on link click
    function cloud_calculator()
    {
        add_action('init' , array($this,'cloud_init'));
    }

    public function cloud_init()
    {
        add_action('wp_head' , array($this, 'plugin_jquery_func'));
        add_action('admin_menu', array($this,'my_menu'));
        add_shortcode('cloud_calculator', array($this,'my_calculator'));
        add_action('the_content', array($this,'the_content_action'));
        add_action( 'wp_ajax_my_unique_action', array($this,'my_unique_action_callback'));
        add_action( 'wp_ajax_nopriv_my_unique_action', array($this,'my_unique_action_callback'));
        add_action( 'wp_ajax_my_cart_action', array($this,'my_cart_action_callback'));
        add_action( 'wp_ajax_nopriv_my_cart_action', array($this,'my_cart_action_callback'));
    }   
    public function plugin_jquery_func()
    {   
        $plugins_url = plugins_url().'/cloud-calculaor/';
        ?>
        <script type="application/javascript">
            var PluginUrlJs = '<?php echo $plugins_url ;?>';
        </script>

    <?php }

    public function the_content_action($content)
    {
        $content = str_replace('[cloud_calculator]',do_shortcode('[cloud_calculator]') ,$content );
        return $content;
    }

    // Menu call function
    public function my_menu() {
        add_menu_page('Cloud Calculator', 'Cloud Calculator', 'manage_options', 'cloud-calculaor/cloud-calculaor.php', array($this, 'my_function'));
    }

    // action to call on admin menu
    public function my_function() {
        wp_enqueue_style('style', '/wp-content/plugins/cloud-calculaor/style/admincalculator.css');
        echo
        '<div class="wrap">
                <h2>Cloud Calculator</h2>
                <div class="plugincode">
                    <div style=" padding:10px 10px 10px 50px;">     
                    <p style="margin:5px 0px">
                        To Insert <strong>CLOUD CALCULATOR</strong> shortcode inside a page or post:<br>                
                    <br>
                        Use: <code><strong>[cloud_calculator]</strong></code><br>
                <br> 
                For more queries contact the administrator!<br>
                </p>    
        </div>
                </div>
        </div>

        ';
    }

0 个答案:

没有答案