일부 내부 코딩에 따라 가격 계산 방법을 업데이트하는 방법을 알고 싶습니다. 이것은 장바구니 품목에 들어가야하는 가격이며, 장바구니 품목에는 제품의 기본 비용 만 표시됩니다.Woocommerce - 사용자 정의 카트 항목 가격 계산
기술적으로 가격은 제품을 장바구니에 추가 할 때 변경해야합니다. 이 트릭을하지 않기 때문에
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
if ($value['product_id'] == $product_id) {
$value['data']->set_price($price);
}
}
어디에/내가 set_price() 함수를 둘 필요가 수행 할 때
나는이 같은 calulated해야했다 생각. 이것이 호출되면 카트는 여전히 비어 있고 루프는 입력되지 않습니다.$ this-> price가 설정되어 있지 않고 get_base_cost가 호출되어 "recalculated"가격이 아닌 기본 비용 만 표시되는 것과 같이 Woocommerce Bookings에 문제가있는 것 같습니다. 그것이 예약 가능한 제품이기 때문에 이것은 더 까다로운 것으로 보인다. $이 자세히 보면
는public function get_price($context = ‘view’) {
return apply_filters('woocommerce_get_price', $this->price ? $this->price : $this->get_base_cost(), $this);
}
나는 적어도 300은 "기본 비용"250 지불해야하는 재 계산 된 가격입니다 class_wc_product_booking 내에서 모두 가격을 볼 수 있습니다.
이 문제와 관련이없는 많은 배열을 삭제했습니다.
WC_Product_Booking Object (
[availability_rules:WC_Product_Booking:private] => Array ()
[object_type:protected] => product
[post_type:protected] => product
[cache_group:protected] => products
[data:protected] =>
Array (
[name] => Booking Test
[slug] => Booking Test
[sku] =>
[price] => 300
[regular_price] =>
[sale_price] =>
[rating_counts] => Array ()
[average_rating] => 0
[review_count] => 0
)
[supports:protected] => Array ()
[id:protected] => 1708
[changes:protected] => Array ([price] => 250)
[meta_data:protected] =>
[product_type] => booking
)
도움이 될 것입니다 세션으로 전송해야하는 경우 – achiever
@achiever이 코드는 매우 고전적입니다 (거기에 많은 답변이 있으므로) ... 관련 계산 코드로 질문을 업데이트하는 것이 더 좋을 수도 있습니다 ... 우리는 어디서 어떻게 당신은 이것을 실제로 만들고 있습니다. 이렇게하면 우리가 더 잘 당신을 도울 수 있습니다. 또한 사용중인 WooCommerce 버전과 관련된 정보를 제공해야합니다. ** Aakanksh Patel **의 새로운 답변도 잘 작동합니다. – LoicTheAztec
코드가 작동한다고 확신합니다! 그것은 "나의"가격을 아직 바꾸지는 못하지만 많은 이유가있을 수 있습니다. Woocommerce v. 3.2.5 – achiever