在产品导入期间更新 WooCommerce 可变产品属性变化复选框

时间:2021-06-29 08:58:08

标签: php wordpress woocommerce

我正在开发一个插件,它扩展了 WooCommerce 导入程序,以便我可以在一个步骤中创建一个包含所有变体的可变产品。为此,我需要更新产品属性并为每个属性启用变体复选框:

enter image description here

/**
 * Process the data read from the CSV file
 *
 * @param WC_Product|null|false $product
 * @param array $data
 *
 * @return WC_Product|null|false
 */
add_filter('woocommerce_product_import_pre_insert_product_object', 'filter_woocommerce_product_import_pre_insert_product_object', 10, 2);
function filter_woocommerce_product_import_pre_insert_product_object($product, array $data): object {
    $product_attributes = $product->get_attributes();

    if (!empty($product_attributes) && $product->is_type('variable')) {
        error_log(print_r($product_attributes, true));

        /**
         * @var WC_Product_Attribute $product_attribute
         */
        foreach ($product_attributes as $product_attribute) {
            $product_attribute_id = $product_attribute->get_id();

            wc_update_attribute($product_attribute_id, [
                'variation' => '1'
            ]);
        }

        error_log(print_r($product->get_attributes(), true));
    }

    return $product;
}

代码被调用,但不知何故它没有更新我的复选框。我真的不知道怎么了。日志或任何函数调用中都没有错误。

0 个答案:

没有答案