>  Q&A  >  본문

제품이 설정되지 않은 경우 저장 시 속성 추가: WooCommerce

상품을 저장할 때 해당 상품에 특정 속성이 있는지 확인하고 싶어요. 제가 아는 한, 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 );

    }
}

P粉555682718P粉555682718331일 전501

모든 응답(1)나는 대답할 것이다

  • P粉520204081

    P粉5202040812023-12-14 10:05:21

    첫 번째 $post는 객체가 아닙니다. ID를 반환합니다. 좋은 결과입니다.

    으아악

    회신하다
    0
  • 취소회신하다