in woocommerce 다른 재고 번호에 대해 다른 텍스트를 표시하기 위해 "재고 있음"텍스트를 변경했습니다. 따라서 위의 3에 해당하는 주식 번호는 sais입니다 : "5에서 주식"(css와 함께 녹색으로 표시) 및 재고 번호가 3 이하이면 "단지 2 왼쪽"(css로 빨간색으로 표시됨)이라고 표시됩니다. 아마존이하는 것처럼.상품 변형 재고 수량이 WooCommerce에 표시되지 않습니다
당신이 여기에서 볼 수 있듯이이 간단한 제품과 완벽하게 작동합니다 : https://edelmix.de/superdry-urban-blau-limette-quarzuhr-syg164un/
을하지만 변수 제품에 내 코드가 원하는 결과가 없습니다. 물론 위의 설명과 동일한 텍스트를 변형의 적절한 재고 수량과 함께 표시해야합니다.
내가 얻은 것은 전체 유사 콘텐츠의 총 개수입니다. 모든 유사 콘텐츠에 대해 백엔드에서 제품 수준의 제품 수량 관리를 설정하고 유사 콘텐츠의 재고 수량이 다릅니다.
현재 시점의 변수에 결과 생성물
여기서 알 수 https://stage.edelmix.de/buddha-to-buddha-blue-lace-agate-ring-603ba/도시 양은 5 (드롭 다운로부터의 변동을 선택한 후). 모든 유사 콘텐츠의 총 수량입니다. 다양한 링 크기는 1/3/1의 재고 수량을 가지고 있습니다 (내 테스트에서 가격 옆의 주식 변수를 반향하여 볼 수 있듯이). 이것은 각 변형이 선택 될 때 표시되기를 원하는 것입니다. 사용자 정의 텍스트는 단순한 제품과 동일 함).
내 코드는 지금까지 있습니다 :
add_filter('woocommerce_get_availability', 'custom_get_availability', 1, 2);
function custom_get_availability($availability, $_product) {
global $woocommerce, $product;
if ($_product->is_type('variable')) {
$available_variations = $product->get_available_variations();
foreach ($available_variations as $variation)
{
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_Variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
echo $stock; // <-- for testing purpose to see if I do get the individual variation-quantities = works!!
}
} else {
$stock = $product->get_stock_quantity();
}
// change text "In Stock' to 'Auf Lager' when quantity more than 3
if ($_product->is_in_stock() && $stock > 3) $availability['availability'] = $stock . ' ' .__('auf Lager', 'woocommerce');
// change text to n Left, where n is the quantity
if ($_product->is_in_stock() && ($stock <= 3)) $availability['availability'] = '<p class="stock ed_low_stock ' . esc_attr($availability['class']) . '">' . __('Nur noch ' . $stock . ' auf Lager!', 'woocommerce') . '</p>';
// change text "Out of Stock' to 'SOLD OUT'
if (!$_product->is_in_stock()) $availability['availability'] = __('zzt. nicht verfügbar!', 'woocommerce');
// change text "In Stock' to 'Special Order' for products with unmanaged stock
if (!$_product->managing_stock() && $_product->is_in_stock()) $availability['availability'] = __('Auf Lager', 'woocommerce');
return $availability;
}
왜이 작동합니까?
나는 지난 시간 동안 모든 것을 시도했으며 왜 이것이 작동하지 않는지 모릅니다.
도움을 주시면 감사하겠습니다.
잘 작동, 그것은 부분적으로 정확하지만 내 질문에 대답하지 않습니다. – Visualpro
죄송합니다 ... 귀하의 코드를 확인하고 테스트했습니다. 나는 무엇이 잘못되었는지 발견했습니다 ... 아래 답변을보십시오. – LoicTheAztec