• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
webmaster

مشکل این کد کجاست؟

4 پست در این موضوع قرار دارد

با سلام

من قصدم اینه که برای قالب ووکامرس زمانی که روی " افزودن به سبد " کلیک میشه به صورت ajax اون بالا سبد خرید بروز شه و محصولات رو تو باکس نشون بده.

این کار رو هم انجام دادم ولی مشکل در این هست که زمانی که روی افزودن به سبد محصول A کلیک میکنم. داخل باکس سبد خرید عوض اینکه بر تعداد محصول افزوده شده خود محصول یه بار دیگه تکرار میشه و زمانی درست میشه که رفرش کنم.

مثال میزنم:

این محصول A ===== " افزودن به سبد خرید "

اینم سبد خرید که محصولا اضافه شده نشون میده توش.

حالا ما قصد داریم از محصول A سه تا بخریم و سه بار روی دکمه جلوش کلیک میکنیم که تو سبد خرید نشون بده .اما زمانی که این سه باره رو میزنم محصول سه بار تکرار میشه در حالی که باید یه بار نشون بده و تنها تعدادش از 1 به 3 تغییر کنه.

3 عدد محصول - 6000 تومان

=========================

| محصول A تعداد 3 قیمت 2000 تومان

|

| محصول A تعداد 2 قیمت 2000 تومان

|

| محصول A تعداد 1 قیمت 2000 تومان

|

| قیمت کل : 6000 تومان

|

========================

و بعد از رفرش صفحه درست میشه یعنی اینطوری :

3 عدد محصول - 6000 تومان

=========================

| محصول A تعداد 3 قیمت 2000 تومان

|

| قیمت کل : 6000 تومان

|

========================

کدهایی که استفاده کردم :

کد header.php :


<div class="cart">
<?php global $woocommerce; ?>
<a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('برای مشاهده سبد خرید کلیک کنید', 'woothemes'); ?>"><?php echo sprintf(_n('%d محصول', '%d محصول', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
<div class="content">
<div class="arrow-up-back"></div>
<div class="arrow-up"></div>

<?php if ($woocommerce->cart->cart_contents_count == 0) {
echo '<p class="empty">'.__('محصولی در ثبت خرید یافت نشد','woocommerce').'</p>';


?>
<?php } else { //add a spinner ?>
<div class="loading"><i>لطفا شکیبا باشید</i></div>
<?php } ?>

</div>
</div>

کد functions.php :


<?php
// Ensure cart contents update when products are added to the cart via AJAX (place the following in functions.php)
add_filter('add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');
function woocommerce_header_add_to_cart_fragment( $fragments ) {
global $woocommerce;

ob_start();

?>
<div class="cart">
<?php global $woocommerce; ?>
<a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('برای مشاهده سبد خرید کلیک کنید', 'woothemes'); ?>"><?php echo sprintf(_n('%d محصول', '%d محصول', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
<div class="content">
<div class="arrow-up-back"></div>
<div class="arrow-up"></div>
<!-- <div class="empty">Your shopping cart is empty!<br /><br /><a class="button" id="close_cart">Close</a></div>-->
<!-- End mini cart buttons -->
<div class="mini-cart-info">
<table>
<tbody>

<?php

if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) :
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) :
$_product = $values['data'];
if ($_product->exists() && $values['quantity']>0) :

?>

<tr>

<td class="image">
<a href="<?php echo get_permalink($values['product_id']);?>">
<?php if (has_post_thumbnail($values['product_id'])){ echo get_the_post_thumbnail($values['product_id'], 'shop_thumbnail');} else{ ?>
<img title="MacBook" alt="MacBook" src="http://themetorium.net/demo/martha/image/cache/data/Products/t-47x47.jpg">
<?php } ?>
</a>
</td>

<td class="name"><a href="<?php echo get_permalink($values['product_id']);?>"><?php echo apply_filters('woocommerce_cart_widget_product_title', $_product->get_title(), $_product);?></a>

<div></div>

</td>
<td class="quantity"><?php echo $values['quantity']; ?></td>

<td class="total"><?php echo woocommerce_price($_product->get_price());?></td>

<td class="it">
<?php global $woocommerce; ?>

<a class="ddd icon-remove" href="<?php echo esc_url( $woocommerce->cart->get_remove_url( $cart_item_key ) );?>" rel="" title="#"></a>



</td>
</tr>

<?php endif; endforeach; endif;?>

</tbody>



</table>
</div>

<div class="mini-cart-total">

<table>

<tbody>

<tr>

<td align="right">
<b><?php if (get_option('js_prices_include_tax')=='yes') :_e('Total ', 'woothemes');else :_e('Subtotal ', 'woothemes');endif;?> </b>
</td>

<td align="right">
<?php echo $woocommerce->cart->get_cart_total();?>
</td>

</tr>

</tbody>

</table>

</div>

<div class="checkout">

<a class="button" href="<?php echo $woocommerce->cart->get_cart_url();?>">
<?php echo __('View Cart','woothemes');?>
</a>

<a class="button" id="checkout-button" href="<?php echo $woocommerce->cart->get_checkout_url();?>">
<?php echo __('Checkout','woothemes');?>
</a>

</div>

</div>
</div>
<?php

$fragments['a.cart-contents'] = ob_get_clean();

return $fragments;

}
?>

پیشاپیش از راهنمایی شما ممنونم.

ویرایش شده در توسط webmaster
0

به اشتراک گذاری این پست


لینک به پست

بعید می دونم مشکل از اینجا باشه ولی می تونه مشکل از کدهای آژاکسی کردنتون باشه

(در مورد توابع این افزونه من اطلاعات خاصی ندارم و ساختارش رو نمی شناسم منتظر پاسخ دوستان دیگه هم بمونید)

2

به اشتراک گذاری این پست


لینک به پست

ضمن تشکر از جناب فخار

دوستانی که در رابطه با این مشکل راه حلی دارند ممنون میشم راهنمایی کنند.

0

به اشتراک گذاری این پست


لینک به پست

فکر کنم مشکلتون باید از اکشنی باشه که برای آژاکس نوشتید اکشن فرم را قرار بدید بهتر می شه راهنمایی کرد

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری