현재 WooCommerce 기능이있는 WordPress 웹 사이트에서 작업하고 있습니다.WooCommerce의 장바구니 항목에 대한 사용자 정의 필드 값을 동적으로 가져옵니다.
각 제품 페이지에는 사이트 방문자가 제품에 적용 할 텍스트를 입력 할 수있는 사용자 지정 필드가 있습니다. 요금은 '편지 당 입력'기준으로 적용됩니다. functions.php
파일로, 나는 다음 코드를 삽입 한
는 제품의 전체 비용 해결하려면 (제품 가격 + 사용자 정의 문자 입력) :
이<?php
function calculate_engrave_text_fee($cart_object) {
foreach ($cart_object->cart_contents as $key => $value) {
if(isset($value["engrave_text"])) {
// Quantity of characters entered into Custom Text Field:
$chars = strlen($value["engrave_text"]);
// Characters Entered Multiplied by Cost of Each Letter:
$engrave_text_fee = $chars * 3; //Need to dynamically call this.
$orgPrice = floatval($value['data']->price);
$value['data']->set_price($orgPrice + $engrave_text_fee);
}
}
}
add_action('woocommerce_before_calculate_totals', 'calculate_engrave_text_fee', 99);
?>
위의 코드는 절대적으로 잘 작동; 한 가지 예외는있다.
각 편지의 비용은 제품마다 다르므로 $engrave_text_fee = $chars * 3;
과 같이 정적 항목이 있으면 이상적이지 않습니다. 또는 WooCommerce 제품 대시 보드에 사용자 정의 필드를 작성하여 사이트 관리자가 각 제품의 개별 사용자 정의 레터링 가격을 입력 할 수 있습니다.
문제점
동적 WooCommerce 제품 대시 보드에서 사용자 정의 필드 항목을 전화 나 교체 시도, 위의 수학에이를 배치 : $engrave_text_fee = $chars * 3;
로 :
$engrave_text_fee = $chars * <?php global $post; echo get_post_meta($post->ID,'_pricing_engrave_text_option',true)?>;
불행하게도,이 웹 사이트를 오프라인으로 보냅니다. 코딩 구문에 문제가 있다고 가정 할 수 있습니다!? 아무도 여기서 내가 잘못 될 수 있다는 것을 지적 할 수 있습니까?
코드 제공 노력에 감사드립니다. 이유는 모르겠지만이 코드를 시도하면 제품을 장바구니에 추가하려고하면 페이지가 비어있게됩니다. 내가 알아낼 수 있는지 알아볼거야. – Craig
@craig 미안 $ cart_item에있는 일부 $ 값의 이름을 바꾸는 것을 잊어 버렸습니다 ... 지금 작동해야합니다 ... 다시 시도하십시오. – LoicTheAztec