>백엔드 개발 >PHP 튜토리얼 >프로그래밍 방식으로 새로운 속성을 사용하여 WooCommerce 제품 변형을 만드는 방법은 무엇입니까?

프로그래밍 방식으로 새로운 속성을 사용하여 WooCommerce 제품 변형을 만드는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-18 11:30:02361검색

How to Create WooCommerce Product Variations with New Attributes Programmatically?

프로그래밍 방식으로 새로운 속성을 사용하여 WooCommerce 제품 변형 생성

WooCommerce 3에서 가변 제품으로 작업할 때 프로그래밍 방식으로 변형을 생성해야 할 수도 있습니다. . 이는 새 속성 값을 생성하고 상위 변수 제품 내에서 이를 설정하는 동시에 달성할 수 있습니다.

제품 변형 생성

가변 제품에 대한 변형을 생성하려면 다음 사용자 정의 함수를 사용할 수 있습니다.

/**
 * Create a product variation for a defined variable product ID.
 *
 * @since 3.0.0
 * @param int   $product_id | Post ID of the product parent variable product.
 * @param array $variation_data | The data to insert in the product.
 */
function create_product_variation( $product_id, $variation_data ){
    // Get the Variable product object (parent)
    $product = wc_get_product($product_id);

    $variation_post = array(
        'post_title'  => $product->get_name(),
        'post_name'   => 'product-'.$product_id.'-variation',
        'post_status' => 'publish',
        'post_parent' => $product_id,
        'post_type'   => 'product_variation',
        'guid'        => $product->get_permalink()
    );

    // Creating the product variation
    $variation_id = wp_insert_post( $variation_post );

    // Get an instance of the WC_Product_Variation object
    $variation = new WC_Product_Variation( $variation_id );

}

속성 값 처리 및 분류 생성

함수 내에서 속성 값 확인 및 생성을 처리하여 기능을 향상합니다.

// Iterating through the variations attributes
foreach ($variation_data['attributes'] as $attribute => $term_name )
{
    $taxonomy = 'pa_'.$attribute; // The attribute taxonomy

        // If taxonomy doesn't exists we create it (Thanks to Carl F. Corneil)
        if( ! taxonomy_exists( $taxonomy ) ){
            register_taxonomy(
                $taxonomy,
               'product_variation',
                array(
                    'hierarchical' => false,
                    'label' => ucfirst( $attribute ),
                    'query_var' => true,
                    'rewrite' => array( 'slug' => sanitize_title($attribute) ), // The base slug
                ),
            );
        }

        // Check if the Term name exist and if not we create it.
        if( ! term_exists( $term_name, $taxonomy ) )
            wp_insert_term( $term_name, $taxonomy ); // Create the term
}

사용

이 기능을 활용하려면 변수 제품 ID와 다음 데이터 배열을 제공하세요.

// The variation data
$variation_data =  array(
    'attributes' => array(
        'size'  => 'M',
        'color' => 'Green',
    ),
    'sku'           => '',
    'regular_price' => '22.00',
    'sale_price'    => '',
    'stock_qty'     => 10,
);

결론

이제 이 기능을 통해 프로그래밍 방식으로 새 속성 값을 사용하여 제품 변형을 생성하고 상위 변수 product 내에서 원활하게 설정할 수 있습니다.

위 내용은 프로그래밍 방식으로 새로운 속성을 사용하여 WooCommerce 제품 변형을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.