programing

Woocommerce 업데이트 카트 버튼 작업 후 실행 중인 후크

javamemo 2023. 3. 26. 09:18
반응형

Woocommerce 업데이트 카트 버튼 작업 후 실행 중인 후크

카트 페이지에서 카트 업데이트 버튼을 클릭한 후 어떤 훅이 실행 중인지 알아야 합니다.

그것은 카트 페이지에 4개의 버튼이 있습니다.update cart,continue shopping,proceed to checkout,apply coupon.

그래서 카트 업데이트 버튼을 클릭한 후 어떤 훅이 실행되는지 알고 싶습니다.수량을 변경한 후 고객이 카트 업데이트 버튼을 클릭하면 카트 내 총 가격을 변경할 수 있는 특별한 기능을 실행해야 합니다.어떤 조건이 충족되면 카트 내 총 가격을 변경하고 이 총 가격도 계산 페이지로 전달해야 합니다.

제발 도와주세요.

예를들면

add_filter('after_update_cart_function_finished', 'special_function');

function special_function(){
   $applied_coupons= WC()->cart->get_applied_coupons();
   if(!empty($applied_coupons)){

   $new_value=WC()->cart->get_cart_subtotal();
   $discounted=WC()->cart->coupon_discount_totals;
   $discounted_value=array_values($discounted)[0];
   $new_value=$new_value-$discounted_value+100;
    WC()->cart->set_total_price($new_value);
    After this update all post_meta value that regarding to order total
   }


}

카트의 값을 변경하려면 다음 커스텀 함수를 참조하십시오.

 function action_woocommerce_cart_totals_after_order_total(  ) {
          $applied_coupons= WC()->cart->get_applied_coupons();
          if(!empty($applied_coupons)){


        $new_value=WC()->cart->get_cart_subtotal();
        $discounted=WC()->cart->coupon_discount_totals;
        $discounted_value=array_values($discounted)[0];
        $new_value=$new_value-$discounted_value;
        if($new_value<100){
            $new_value=$new_value+5;
        }

         ?>
         <style>
         .new-price-new{
             color:black;
             font-size: 17px;
         }
         </style>
         <script>
         jQuery(function($){
              $(".order-total .woocommerce-Price-amount.amount").text("£<?php  echo $new_value;?>");
              $(".order-total .woocommerce-Price-amount.amount").hide();
              $(".new-price").remove();
              $('.order-total .woocommerce-Price-amount.amount').after('<div class="new-price-new">£<?php  echo $new_value;?></div>');;
              $(".new-price-new").show();


         });


         </script>

         <?php 
      }
    else{
        ?>
         <script>
         jQuery(function($){
        $(".new-price-new").remove();
         });
         </script>
    <?php }   

}; 

add_action( 'woocommerce_cart_totals_after_order_total', 'action_woocommerce_cart_totals_after_order_total', 10, 0 ); 

그리고 이 함수는 많은 문제를 가지고 있습니다, 저는 어떤 이유로 이 함수를 쓰거나 다른 함수의 woocommerce가 쿠폰 가격을 정확하게 계산하지 못하고 있기 때문에 이 함수를 카트에서 제품 가격을 수동으로 업데이트하기 위해 씁니다.카트 값이 100을 넘으면 무료배송, 기타 바이스는 5를 추가합니다.이 기능조차 제대로 작동하지 않습니다.

Woocommerce 새로운 할인 기능 만들기

시도해 보세요.woocommerce_update_cart_action_cart_updated액션 훅저는 당신의 코드를 조금 다시 보았습니다.이것을 시험해 보세요.

add_action( 'woocommerce_update_cart_action_cart_updated', 'on_action_cart_updated', 20, 1 );
function on_action_cart_updated( $cart_updated ){

    $applied_coupons = WC()->cart->get_applied_coupons();

    if( count( $applied_coupons ) > 0 ){
        $new_value        = WC()->cart->get_cart_subtotal();
        $discounted       = WC()->cart->coupon_discount_totals;
        $discounted_value = array_values($discounted)[0];
        $new_value        = $new_value-$discounted_value + 100;

        WC()->cart->set_total( $new_value );

        if ( $cart_updated ) {
            // Recalc our totals
            WC()->cart->calculate_totals();
        }
    }
}

코드가 기능합니다.php 파일에는 액티브한 아이 테마(또는 활성 테마).검증되지 않았다.작동할 수 있었다.

업데이트:WC_Cart set_total_price()메서드가 존재하지 않습니다.기존 제품으로 교체했습니다.WC_Cart set_total()

언급URL : https://stackoverflow.com/questions/49493085/which-hook-is-running-after-woocommerce-update-cart-button-action

반응형