WooC Commerce nhận sản phẩm bằng sên

$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

Chủ Đề