尝试在AJAX调用上运行Java脚本

时间:2021-12-28 作者:gundamstyle

我正在尝试更改“的课程”;查看购物车“;将项目添加到购物车后的按钮。我想做的是勾入;woocommerce\\u ajax\\u将\\u添加到\\u购物车中“;操作并插入我的Javascript,如下所示,但这会中断AJAX调用。老实说,我不知道我是否使用了正确的钩子:

function set_button_classes() {

    echo "<script>document.getElementByClassName(\'added_to_cart wc-forward\').classList.add(\'ct-cart-item\', \'ct-offcanvas-trigger\');</script>";

}
add_action( \'woocommerce_ajax_added_to_cart\', \'set_button_classes\', 10, 1 ); 
任何指点都将不胜感激。

2 个回复
最合适的回答,由SO网友:gundamstyle 整理而成

在上找到答案here. 这确实有效,但我认为我有时间问题。虽然它们与问题无关,但我将标记以下内容作为答案。谢谢大家。

add_action( \'wp_footer\', \'trigger_for_ajax_add_to_cart\' );
function trigger_for_ajax_add_to_cart() {
    ?>
        <script type="text/javascript">
            (function($){
                $(\'body\').on( \'added_to_cart\', function(){
                    // Testing output on browser JS console
                    console.log(\'added_to_cart\'); 
                    // Your code goes here
                });
            })(jQuery);
        </script>
    <?php
}

SO网友:Buttered_Toast

按照你的方法我建议wp_footer 同样,这样脚本将接近正文的末尾,这样它将在加载所有DOM之后加载。

add_action(\'woocommerce_ajax_added_to_cart\', \'set_button_classes\');
function set_button_classes () {
    add_action(\'wp_footer\', function () {
        echo "<script>document.getElementByClassName(\'added_to_cart wc-forward\').classList.add(\'ct-cart-item\', \'ct-offcanvas-trigger\');</script>";
    });
}
您还可以关闭php标记,然后在wp_footer anonymos功能使其更容易理解/查看临时代码

add_action(\'woocommerce_ajax_added_to_cart\', \'set_button_classes\');
function set_button_classes () {
    add_action(\'wp_footer\', function () {
        ?>
        <script>
            document.getElementByClassName(\'added_to_cart wc-forward\').classList.add(\'ct-cart-item\', \'ct-offcanvas-trigger\');
        </script>
        <?php
    });
}

相关推荐

AJAX操作未触发PHP函数

我以前在WordPress中使用过Ajax,并使其正常工作。然而,事实证明,这种特殊情况(文件上传)很困难。问题似乎是,尽管我在AJAX中设置了操作,但该操作并没有调用php函数formData.append( \'action\', \'uc_user_image\' ); 与PHP中的函数名相同function uc_user_image()我知道Ajax正在工作,因为我在success: function(data) {} 控制台中没有任何错误。我的最终目标是允许用户通过其帐户页面动态更改其个人资料