상품을 저장할 때 해당 상품에 특정 속성이 있는지 확인하고 싶어요. 제가 아는 한, pa_region
. 그렇지 않다면 제품에 속성 세트와 속성 용어를 추가하고 싶습니다.
속성 pa_region
이 이미 설정되어 있으면 업데이트/변경하고 싶지 않습니다.
wp_set_object_terms
的函数(文档)。我尝试了一些方法,但我认为 update_post_meta
라는 방법이 있는 것으로 확인했는데 이것이 올바른 방법입니다.
이 답변을 통해 제품에 속성이 있는지 확인하는 방법을 알 수 있습니다. 나중에 해당 수표를 추가하겠습니다.
현재는 속성을 먼저 추가하려고 합니다. 아직 제대로 작동하지 않습니다.
여기서 비슷한 질문을 발견하고 해당 코드를 사용하여 목적을 달성해 보았습니다. 그러나 이것은 작동하지 않습니다. 그 이유는 해당 기능이 이미 제품에 있는 속성을 요구하기 때문인 것 같습니다. !
편집: 확인했습니다. 제품에 pa_region
속성이 설정되어 있어도 코드는 해당 값을 업데이트하지 않습니다.
현재 코드는 다음과 같습니다.
add_action('woocommerce_update_product', 'save_product_region'); function save_product_region( $post ) { if( in_array( $post->post_type, array( 'product' ) ) ){ $test = 'test'; $product_id = $post->ID; $product_attributes = get_post_meta( $product_id ,'_product_attributes', true); var_dump($product_attributes); // Loop through product attributes foreach( $product_attributes as $attribute => $attribute_data ) { // Target specif attribute by its name if( 'pa_region' === $attribute_data['name'] ) { // Set the new value in the array $product_attributes[$attribute]['value'] = $test; break; // stop the loop } } update_post_meta( $product_id ,'_product_attributes', $product_attributes ); } }
첫 번째 $post는 객체가 아닙니다. ID를 반환합니다. 좋은 결과입니다.
으아악