Php 在Woocommerce中刷新购物车事件的自定义组件
我有一个名为cart checkout的组件,它显示在woocommercePhp 在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>
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再一次去营救!