programing

Woocommerce : 모든 제품 업데이트 기능

bestprogram 2023. 3. 23. 23:13

Woocommerce : 모든 제품 업데이트 기능

Woocommerce 제품에 문제가 있습니다.이 문제는 수정 없이 제품만 업데이트(제품 편집 후 업데이트 버튼 클릭)하면 해결됩니다.

제 사이트에는 2000개 정도의 제품이 있는데, 제 기능을 이용하여 하려고 생각하고 있습니다.php 파일.

이 정도일 거예요, 제품 업데이트 라인만 있으면 돼요.

function update_all_products(){

    // getting all products
    $products = get_posts( $args );

    // Going through all products
    foreach ( $products as $key => $value ) {

        // the product ID
        $product_id = $value->ID;

        // update product
        update_post_meta...(NEED HELP HERE)...

   } //..end foreach
}

// fire the function
update_all_products();

문제를 피하기 위해 매번 200개씩 제품을 갱신합니다(변수 제품도 있는 경우 arg는 &이어야 합니다).

 add_action( 'woocommerce_loaded', 'update_products_by_x' );
function update_products_by_x(){
    $limit = 200;

    // getting all products
    $products_ids = get_posts( array(
        'post_type'        => 'product', // or ['product','product_variation'],
        'numberposts'      => $limit,
        'post_status'      => 'publish',
        'fields'           => 'ids',
        'meta_query'       => array( array(
            'key'     => '_sync_updated',
            'compare' => 'NOT EXISTS',
        ) )
    ) );

    // Loop through product Ids
    foreach ( $products_ids as $product_id ) {

        // Get the WC_Product object
        $product = wc_get_product($product_id);

        // Mark product as updated
        $product->update_meta_data( '_sync_updated', true );

        $product->save();
    }
}

코드가 기능합니다.php 파일에는 액티브한 아이 테마(또는 활성 테마).테스트 및 동작.

사이트의 페이지를 참조할 때마다 기능이 트리거됩니다.제품을 200개까지 처리하는 것이 더 안전하며 타임아웃이나 오류를 방지할 수 있습니다.

예를 들어 이 숫자를 500으로 늘릴 수 있습니다.$limit로.500

언급URL : https://stackoverflow.com/questions/55965302/woocommerce-function-to-update-all-products