$att=$_product->get_attribute['pa_color'];
$values = wc_get_product_terms[ $product->id, 'pa_color', array[ 'fields' => 'all' ] ];
foreach[$values as $val]{
echo "";
var_dump[$val->slug];
echo "
"; } Gần đây, một trong những khách hàng của tôi đã hỏi tôi cách xuất sên của các sản phẩm WooC Commerce của anh ấy từ trang web cũ sang trang web WooC Commerce mới của anh ấy. Tôi chưa bao giờ phải đối mặt với câu hỏi này trước đây, vì vậy tôi chắc chắn rằng Trình nhập và xuất CSV WooC Commerce có tính năng này theo mặc định. Vâng, tôi đã sai. vì một số lý do, nó không
Tuy nhiên, tôi đã tìm thấy một cách dễ dàng để mở rộng các tính năng mặc định của nó và cho phép xuất và nhập sên sản phẩm WooC Commerce. Vì vậy, tôi hy vọng rằng giải pháp của tôi sẽ hữu ích cho những người có cùng câu hỏi trong tương lai
Bắt đầu nào
Làm cách nào để xuất sên sản phẩm WooC Commerce?
Hãy bắt đầu với việc xuất khẩu. Nếu bạn sử dụng slug mặc định mà WordPress tạo cho bạn, có lẽ bạn không cần bài đăng này. Tuy nhiên, nếu bạn đã sửa đổi slug của sản phẩm theo cách thủ công, thì bạn nên di chuyển chúng nếu bạn xuất sản phẩm của mình sang một trang web mới
Theo mặc định, Trình xuất sản phẩm WooC Commerce không có cột như “Slug” hoặc bất kỳ thứ gì tương tự. May mắn thay, phần này của WooC Commerce kế thừa triết lý về khả năng mở rộng của WordPress bằng hành động và móc lọc
Sử dụng bởi WooC Commerce, hãy thêm một cột xuất mới. Nhân tiện, tôi thực sự khuyên bạn nên xem hướng dẫn này nếu bạn muốn tìm hiểu thêm về cách mở rộng bộ nhập/xuất WooC Commerce. Đây là mã tôi sẽ sử dụng
add_filter[ 'woocommerce_product_export_column_names', 'add_slug_export_column' ];
add_filter[ 'woocommerce_product_export_product_default_columns', 'add_slug_export_column' ];
function add_slug_export_column[ $columns ] {
$columns['slug'] = 'Slug';
return $columns;
}
Giờ mình vào mục xuất sản phẩm thì thấy cột mới mình chọn xuất được
Có vẻ tốt, nhưng chúng tôi chưa hoàn thành
Bây giờ, chúng tôi cần cho WooC Commerce biết dữ liệu nào nên sử dụng cho cột này
Hướng dẫn chính thức mà tôi đã đề cập ở trên sử dụng $product->get_meta[] cho việc này. Sên sản phẩm không phải là trường meta, nhưng chúng ta có thể lấy chúng theo cách tương tự
add_filter[ 'woocommerce_product_export_product_column_slug' , 'add_export_data_slug', 10, 2 ];
function add_export_data_slug[ $value, $product ] {
$value = $product->get_slug[];
return $value;
}
Lưu ý rằng trong tên slug của bộ lọc woocommerce_product_export_product_column_slug là một phần động tương ứng với ID của cột mà bạn đã chỉ định trong đoạn mã trước
Hãy chạy một bản xuất để kiểm tra xem mọi thứ có hoạt động như mong đợi không
Đây là tệp CSV mà tôi nhận được từ kết quả
Đẹp, chỉ là những gì chúng ta cần
Phần xuất khẩu đã xong. Bây giờ chúng tôi cần cho WooC Commerce biết cách sử dụng cột này trong khi nhập sản phẩm
Làm cách nào để nhập sên sản phẩm WooC Commerce?
Sử dụng , chúng tôi cũng có thể thêm hỗ trợ cột Slug cho trình nhập sản phẩm
add_filter[ 'woocommerce_csv_product_import_mapping_options', 'add_slug_import_option' ];
function add_slug_import_option[ $options ] {
$options['slug'] = 'Slug';
return $options;
}
add_filter[ 'woocommerce_csv_product_import_mapping_default_columns', 'add_default_slug_column_mapping' ];
function add_default_slug_column_mapping[ $columns ] {
$columns['Slug'] = 'slug';
return $columns;
}
add_filter[ 'woocommerce_product_import_pre_insert_product_object', 'process_import_product_slug_column', 10, 2 ];
function process_import_product_slug_column[ $object, $data ] {
if [ !empty[ $data['slug'] ] ] {
$object->set_slug[ $data['slug'] ];
}
return $object;
}
Về cơ bản, bạn có thể thêm đoạn mã trên vào trang web mới của mình để nhập sên từ tệp CSV mà bạn đã tạo trong phần trước
Đó là tất cả. Chúng tôi đã di chuyển thành công sên sản phẩm từ trang web này sang trang web khác
mã cuối cùng
add_filter[ 'woocommerce_product_export_column_names', 'add_slug_export_column' ];
add_filter[ 'woocommerce_product_export_product_default_columns', 'add_slug_export_column' ];
function add_slug_export_column[ $columns ] {
$columns['slug'] = 'Slug';
return $columns;
}
add_filter[ 'woocommerce_product_export_product_column_slug' , 'add_export_data_slug', 10, 2 ];
function add_export_data_slug[ $value, $product ] {
$value = $product->get_slug[];
return $value;
}
add_filter[ 'woocommerce_csv_product_import_mapping_options', 'add_slug_import_option' ];
function add_slug_import_option[ $options ] {
$options['slug'] = 'Slug';
return $options;
}
add_filter[ 'woocommerce_csv_product_import_mapping_default_columns', 'add_default_slug_column_mapping' ];
function add_default_slug_column_mapping[ $columns ] {
$columns['Slug'] = 'slug';
return $columns;
}
add_filter[ 'woocommerce_product_import_pre_insert_product_object', 'process_import_product_slug_column', 10, 2 ];
function process_import_product_slug_column[ $object, $data ] {
if [ !empty[ $data['slug'] ] ] {
$object->set_slug[ $data['slug'] ];
}
return $object;
}
Tóm lược
Mặc dù tôi tin rằng tính năng này sẽ đi kèm với WooC Commerce theo mặc định, nhưng như bạn thấy, bạn có thể tự triển khai tính năng này khá dễ dàng
Như mọi khi, tôi hy vọng bạn thấy bài đăng này hữu ích
Nếu bạn có bất kỳ câu hỏi hoặc vấn đề nào, vui lòng viết về chúng trong phần bình luận dưới bài đăng này hoặc thậm chí liên hệ trực tiếp với tôi