評価のための分類/属性を追加する必要があります(バックエンドまたは管理パネルから)。評価が追加されたとしましょう。slug
はpa_rating
になります。
属性を追加した後に用語/値を追加する必要がある場合、5.0,1.5を追加したとしましょう。スラッグはそれぞれ5-0
と4-5
になります。
アクティブな子テーマ(またはテーマ)のfunction.php
ファイルに以下の機能をコピーしてコピーします。また、任意のプラグインのPHPファイルにもあります。 あなたのサイトを1回だけ実行し、以下のコードを削除してください。
add_action('wp', 'wh_addRatingtoProduct');
function wh_addRatingtoProduct() {
$args = ['post_type' => 'post', 'posts_per_page' => -1];
$loop = new WP_Query($args);
if (!empty($loop->posts)):
$attribute_name = 'pa_rating'; //slug of the attribute(taxonomy) with prefix 'pa_'
foreach ($loop->posts as $post) :
$content = $post->post_content; //getting product content
$product_id = $post->ID;
//for 5 star
if (strpos($content, "5.0.png") !== false) {
$attribute_value = '5'; //slug of the attribute value (term)
}
//for 4.7 star
elseif (strpos($content, "4.7.png") !== false) {
$attribute_value = '4-7'; //slug of the attribute value (term)
}
//for 4.8 star
elseif (strpos($content, "4.8.png") !== false) {
$attribute_value = '4-8'; //slug of the attribute value (term)
}
//...
//...
//Appending term to the object/product.
$term_taxonomy_ids = wp_set_object_terms($product_id, $attribute_value, $attribute_name, true);
$data = [
$attribute_name => [
'name' => $attribute_name,
'value' => '',
'is_visible' => '1',
'is_variation' => '0',
'is_taxonomy' => '1'
]
];
//getting the Post Meta
$_product_attributes = get_post_meta($product_id, '_product_attributes', TRUE);
//Updating the Post Meta
update_post_meta($product_id, '_product_attributes', array_merge($_product_attributes, $data));
endforeach;
endif;
}
属性値の所望のスラグと全て$attribute_value
を交換します。 これを行う前に、データベースのバックアップをとることを強くお勧めします。
コードがテストされ動作します。
参考:Add Attribute to WooCommerce Product Programmatically
は、この情報がお役に立てば幸い! WPの機能を使用して、ここで
可能な方法:いずれかの製品に評価を適用し、データベースに格納されている方法を確認します。次に、この学習に基づいてすべての製品を更新するSQLクエリを作成します。テストのために実際のデータベースのダンプを使用してください。 –
試してみてください:https://wordpress.org/plugins/product-import-export-for-woo –