Facebook にシェア
[`evernote` not found]
LINEで送る

Welcartで商品を登録する際、商品に使う画像の名前を商品コードと同じにしなければなりません。
いちいち名前を変えるのも面倒だし、アイキャッチから画像を登録して商品画像にできればいいのにと思い簡単なカスタムをしてみました。

lter('template_include', 'select_category_template');

//アイキャッチ画像に設定した画像をwelcart用画像にリネーム
function rename_welcart_thumbnail($post_ID)  {
	if($post = get_post($post_ID)){
		//welcartの投稿か調べる
		if($post->post_mime_type == "item"){
				//商品コードを確認する
				$itemcode = get_post_meta($post_ID,"_itemCode",true);
				//アイキャッチ画像に登録されている画像があるかチェック
				if($tmb_id = get_post_thumbnail_id($post_ID)){
					//アイキャッチ画像のデータを取得
					$img = get_post($tmb_id);
						//アイキャッチ画像のタイトルが商品コードと違う場合、アイキャッチ画像のタイトルを商品コードに変更
						if(!preg_match('/^' . $itemcode . '/',$img->post_title)) {
							wp_update_post(array("ID"=>$tmb_id,"post_title"=>$itemcode));
						}						
				}
		}
	}
}
add_action('publish_post', 'rename_welcart_thumbnail');

アイキャッチ画像を設定して、投稿を更新するとアイキャッチ画像のタイトルが商品コードと違った場合は商品コードにリネームしてくれます。
ただしアイキャッチ画像を違うのに変更しても、前の商品画像は上書きしないようになっているので商品画像の更新はありません。
またすでに商品コードのタイトルで画像がアップされている場合もそちらが優先されます。
その場合はメディアから画像を削除するなりリネームするなりして対応してください。