0

我正在尝试向 Woocommerce 中的所有可变产品添加自定义字段和静态值。我已经解决了其他问题,但它们与创建全新的变体有关。以编程方式创建具有新属性值的 WooCommerce 产品变体

我需要这样做是因为我们通过数据馈送(Dropshipping 站点)导入了数千种产品。这个自定义字段用于将数据发送到 Facebook 以获取目录。我们需要挂钩一个动作,即每当添加一个新的变量产品时,它的所有变体都在 postmeta 中添加了自定义字段,其值为“parent_product”。我已经添加了这个过滤器来更改简单产品的数据。

add_filter ('facebook_for_woocommerce_integration_prepare_product', 'fix_image_url', 100, 2);
function fix_image_url( $product_data, $product_id ){
    if( empty( $product_data ) || empty( $product_id ) )
    {
        return $product_data;
    }
    $product_image = get_post_meta( $product_id, "_bdroppy_url", true );
    if( isset( $product_image['img_url'] ) && !empty($product_image['img_url'] ) ) {
        $image_override = get_post_meta($product_id, 'fb_product_image', true);
        $image_option_override = get_post_meta($product_id, '_wc_facebook_product_image_source', true);
        if ( empty($image_override ) )
        {
            add_post_meta($product_id, 'fb_product_image', $product_image['img_url'] );
        }
        if ( !empty($image_override ) )
        {
            update_post_meta($product_id, 'fb_product_image', $product_image['img_url'] );
        }
        if ( empty($image_option_override) )
        {
            add_post_meta($product_id, '_wc_facebook_product_image_source', 'custom');
        }
        if ( !empty($image_option_override) && $image_option_override = 'product' )
        {
            update_post_meta($product_id, '_wc_facebook_product_image_source', 'custom');
        }
    }
    return $product_data;
}

我只需要将自定义字段添加/更新到现有变体。这是我需要在每个变体 postmeta 中添加的内容:add_post_meta($variation_id, '_wc_facebook_product_image_source', 'parent_product'); 我不知道如何为这个函数的每个循环执行。

4

0 回答 0