Php 在Woocommerce中刷新购物车事件的自定义组件

Php 在Woocommerce中刷新购物车事件的自定义组件,php,ajax,wordpress,woocommerce,cart,Php,Ajax,Wordpress,Woocommerce,Cart,我有一个名为cart checkout的组件,它显示在woocommercearchive product.php页面的一个页面上。当有人单击此页面上某个产品上的“添加到卡”时,我希望此组件更新以显示项目数量、名称和价格。我目前正在使用以下代码来显示此信息,但您必须刷新页面,才能在点击“添加到购物车”后看到更新 <div class="cart-wrap"> <p class="cart-title">Currently in Cart</p>

我有一个名为cart checkout的组件,它显示在woocommerce
archive product.php
页面的一个页面上。当有人单击此页面上某个产品上的“添加到卡”时,我希望此组件更新以显示项目数量、名称和价格。我目前正在使用以下代码来显示此信息,但您必须刷新页面,才能在点击“添加到购物车”后看到更新

<div class="cart-wrap">
    <p class="cart-title">Currently in Cart</p>
    <?php
        global $woocommerce;
        $items = $woocommerce->cart->get_cart();

            foreach($items as $item => $values) { 
                $_product =  wc_get_product( $values['data']->get_id()); 
                echo "<p>" . $_product->get_title().'<span class="amount"> x '.$values['quantity']; 
                $price = get_post_meta($values['product_id'] , '_price', true);
                echo " $".$price."</span></p>";
            } 
    ?>
    <a class="cart-checkout" href="<?php echo wc_get_cart_url(); ?>" >Checkout</a>
</div>

当前在购物车中

我想使用ajax,但我甚至不知道从哪里开始,如何让它工作


好的,提前感谢。

要使用ajaxify购物车组件(或在Woocommerce片段中调用),您将使用以下命令:

1) 重新访问的代码组件:

<div class="cart-wrap">
    <p class="cart-title"><?php _e("Currently in Cart", "woocommerce"); ?></p>
    <div id="cart-items-wrap">
    <?php
        foreach( WC()->cart->get_cart() as $cart_item ) {
            printf( '<p>%s<span class="amount"> x %s %s</span></p>',
                $cart_item['data']->get_title(),
                $cart_item['quantity'],
                wc_price( wc_get_price_to_display( $cart_item['data'] ) )
            );
        }
    ?>
    </div>
    <a class="cart-checkout" href="<?php echo wc_get_cart_url(); ?>"><?php _e("Checkout", "woocommerce"); ?></a>
</div>
add_filter( 'woocommerce_add_to_cart_fragments', 'ajaxify_components', 10, 1 );
function ajaxify_components( $fragments ) {
    ob_start();
    ?>
    <div id="cart-items-wrap">
    <?php
        foreach( WC()->cart->get_cart() as $cart_item ) {
            printf( '<p>%s<span class="amount"> x %s %s</span></p>',
                $cart_item['data']->get_title(),
                $cart_item['quantity'],
                wc_price( wc_get_price_to_display( $cart_item['data'] ) )
            );
        }
    ?>
    </div>
    <?php
    $fragments['#cart-items-wrap'] = ob_get_clean();

    return $fragments;
}


@loictheaztec再一次去营救!