업데이트(WooCommerce과의 호환성 3 이상)
당신이 제품에 대한 woocommerce 카테고리를 변경하려면, 당신은 카테고리 ID를 받아 wp_set_object_terms()
기본 워드 프레스 기능을 사용한다 또는 슬러그 'product_cat'
분류 파라미터 및 'category'
.
woocommerce_order_status_completed
후크
고전적 상태에 순서 변경이 완료 될 때 콜백 함수를 발생하는 데 사용된다.
add_action('woocommerce_order_status_completed', 'add_category_to_order_items_on_competed_status' 10, 1);
function add_category_to_order_items_on_competed_status($order_id) {
// set your category ID or slug
$your_category = 'my-category-slug'; // or $your_category = 123;
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item_id => $product_item) {
// compatibility with WC +3
if (version_compare(WC_VERSION, '3.0', '<'))
$product_id = $product_item['product_id'];
else
$product_id = $product_item->get_product_id();
wp_set_object_terms($product_id, $your_category, 'product_cat');
}
}
아니면 "완료"순서를 필터링하는 조건 기능도 woocommerce_order_status_changed
후크 사용할 수있는 상태가 :
이
add_action('woocommerce_order_status_changed', 'add_category_to_order_items_on_competed_status' 10, 1);
function add_category_to_order_items_on_competed_status($order_id) {
// set your category ID or slug
$your_category = 'my-category-slug'; // or $your_category = 123;
$order = wc_get_order($order_id);
$order_status = $order->post->post_status;
if ($order->has_status('completed')) {
foreach ($order->get_items() as $item_id => $product_item) {
// compatibility with WC +3
if (version_compare(WC_VERSION, '3.0', '<'))
$product_id = $product_item['product_id'];
else
$product_id = $product_item->get_product_id();
wp_set_object_terms($product_id, $your_category, 'product_cat');
}
}
}
이 코드는 계속
이
코드입니다 활성 자식 테마 또는 테마의 function.php 파일.
이 코드는 테스트를 거쳐 완전히 작동합니다.
HI, functions.pho에 코드를 붙여 넣으면 코드의 첫 번째 줄과 두 번째 줄에 오류가 발생합니다. 두 번째 줄에 단어 (함수)가 누락 된 것 같지만 코드 첫 줄에 오류가있는 이유를 알지 못합니다. add_action ('woocommerce_order_status_completed', 'add_category_to_order_items_on_competed_status'10, 1); – user3814097
예, 작동합니다! 감사합니다 :) – user3814097
또한 그룹화 된 제품을 사용하고 있습니다. 그룹 목록의 첫 번째 제품이 완성 된 후 범주를 변경했는지 확인할 수 있습니까? – user3814097