1. 1. 現在読んでいる: WordPressの25のベストWooCommerceスニペット
  2. 2. WordPressパート2の私の25のベストWooCommerceスニペット

時が経つにつれ…WooThemesのWooCommerceフルタイムサポート技術者として働き始めてから6か月が経ちました。この6か月の間に、WooCommerceで多くのことを学び、多くのコードを作成しました(読む たくさん!)WooCommerce関連のスニペット。実際、WooCommerceは本当に強力なツールであり、簡単に拡張できます。ほぼすべてに使用できる多くのフックがあり、それがWooCommerceの優れた点です。ここに私が過去数ヶ月の間に私が書いた、または適合させたスニペットのリストがあります。これらのスニペットはすべて、テーマフォルダー内のfunctions.phpファイルに貼り付ける必要があります。


Contents

1 – WooCommerce管理者メールに支払いタイプを追加する

add_action( 'woocommerce_email_after_order_table'、 'add_payment_method_to_admin_new_order'、15、2);

function add_payment_method_to_admin_new_order($ order、$ is_admin_email){
if($ is_admin_email){
エコー '

支払方法: '。 $ order-> payment_method_title。 」

'; } }

2 –ページごと/行ごとに製品をアップセルする

remove_action( 'woocommerce_after_single_product_summary'、 'woocommerce_upsell_display'、15);
add_action( 'woocommerce_after_single_product_summary'、 'woocommerce_output_upsells'、15);

if(!function_exists( 'woocommerce_output_upsells')){
function woocommerce_output_upsells(){
woocommerce_upsell_display(3,3); // 3つの製品を3行に表示します
}
}

3 –ショップページから商品カテゴリを削除する

add_action( 'pre_get_posts'、 'custom_pre_get_posts_query');

function custom_pre_get_posts_query($ q){

if(!$ q-> is_main_query())を返す;
if(!$ q-> is_post_type_archive())戻ります。

if(!is_admin()&& is_shop()&&!is_user_logged_in()){

$ q-> set( 'tax_query'、array(array(
'分類' => 'product_cat',
'フィールド' => 'スラグ',
'terms' => array( 'color'、 'flavor'、 'spices'、 'vanilla')、//これらのカテゴリの商品をショップページに表示しない
'演算子' => 'NOT IN'
)));

}

remove_action( 'pre_get_posts'、 'custom_pre_get_posts_query');

}

4 –文字列をすばやく翻訳

add_filter( 'gettext'、 'translate_text');
add_filter( 'ngettext'、 'translate_text');

function translate_text($ translated){
$ translated = str_ireplace( '選択してオプション'、 '選択'、$ translated);
$ translatedを返します。
}

5 – WooCommerceカテゴリウィジェットからカテゴリを除外する

add_filter( 'woocommerce_product_categories_widget_args'、 'woo_product_cat_widget_args');

function woo_product_cat_widget_args($ cat_args){

$ cat_args ['exclude'] = array('16 ');

$ cat_argsを返します。
}

6 –カスタムフィールドを製品バリエーションに追加する

//フィールドを表示
add_action( 'woocommerce_product_after_variable_attributes'、 'variable_fields'、10、2);
//新しいバリエーションのフィールドを追加するためのJS
add_action( 'woocommerce_product_after_variable_attributes_js'、 'variable_fields_js');
//バリエーションフィールドを保存します
add_action( 'woocommerce_process_product_meta_variable'、 'variable_fields_process'、10、1);

function variable_fields($ loop、$ variation_data){?>


7 –「在庫なし」を「販売済み」に置き換えます

add_filter( 'woocommerce_get_availability'、 'availability_filter_func');

関数availability_filter_func($ availability)
{
$ availability ['availability'] = str_ireplace( 'Out of stock'、 'Sold'、$ availability ['availability']);
$ availabilityを返します。
}

8 –「カートに追加」ボタンの代わりに「カートに既にある商品」を表示する

/ **
*単一の製品ページのカートに追加するテキストを変更する
* /
add_filter( 'woocommerce_product_single_add_to_cart_text'、 'woo_custom_cart_button_text');

function woo_custom_cart_button_text(){

グローバル$ woocommerce;

foreach($ woocommerce-> cart-> get_cart()as $ cart_item_key => $ values){
$ _product = $ values ['data'];

if(get_the_ID()== $ _product-> id){
return __( 'すでにカートに入っています-もう一度追加しますか?'、 'woocommerce');
}
}

return __( 'カートに追加'、 'woocommerce');
}

/ **
*製品アーカイブのカートに追加するテキストを変更する
* /
add_filter( 'add_to_cart_text'、 'woo_archive_custom_cart_button_text');

function woo_archive_custom_cart_button_text(){

グローバル$ woocommerce;

foreach($ woocommerce-> cart-> get_cart()as $ cart_item_key => $ values){
$ _product = $ values ['data'];

if(get_the_ID()== $ _product-> id){
return __( 'すでにカートに入っています'、 'woocommerce');
}
}

return __( 'カートに追加'、 'woocommerce');
}

9 –カテゴリビューで製品数を非表示にする

add_filter( 'woocommerce_subcategory_count_html'、 'woo_remove_category_products_count');

function woo_remove_category_products_count(){
戻る;
}

10 –アカウントのチェックアウトフィールドを必須にする

add_filter( 'woocommerce_checkout_fields'、 'woo_filter_account_checkout_fields');

function woo_filter_account_checkout_fields($ fields){
$ fields ['account'] ['account_username'] ['required'] = true;
$ fields ['account'] ['account_password'] ['required'] = true;
$ fields ['account'] ['account_password-2'] ['required'] = true;

$ fieldsを返します。
}

11 –製品タブの名前を変更する

add_filter( 'woocommerce_product_tabs'、 'woo_rename_tab'、98);
function woo_rename_tab($ tabs){

$ tabs ['description'] ['title'] = '詳細';

$ tabsを返します。
}

12 – WooCommerce製品カテゴリのリスト

$ args = array(
'数値' => $数値,
'orderby' => $ orderby,
'注文' => $注文,
'hide_empty' => $ hide_empty,
'include' => $ ids
);

$ product_categories = get_terms( 'product_cat'、$ args);

$ count = count($ product_categories);
if($ count> 0){
エコー "";
}

13 –ショップページのタイトルを置き換える

add_filter( 'woocommerce_page_title'、 'woo_shop_page_title');

function woo_shop_page_title($ page_title){

if( 'ショップ' == $ page_title){
「私の新しいタイトル」を返します。
}
}

14 –ウィジェットのタイトルを変更する

/ *
*ウィジェットのタイトルを変更する
* /
add_filter( 'widget_title'、 'woo_widget_title'、10、3);

function woo_widget_title($ title、$ instance、$ id_base){

if( 'onsale' == $ id_base){
「私の新しいタイトル」を返します。
}
}

15 – WooCommerceのデフォルト設定を削除する

add_filter( 'woocommerce_catalog_settings'、 'woo_remove_catalog_options');

function woo_remove_catalog_options($ catalog){

unset($ catalog [23]); //ゼロをトリムする(いいえ)
unset($ catalog [22]); //小数点以下2桁
unset($ catalog [21]); // 10進数の9月(。)
unset($ catalog [20]); //千月(、)
unset($ catalog [19]); //通貨の位置(左)
unset($ catalog [18]); //通貨の位置(左)
unset($ catalog [5]); // ajaxカートに追加(いいえ)

$ catalogを返します。
}

16 –「差出人」のメールアドレスを変更する

function woo_custom_wp_mail_from(){
グローバル$ woocommerce;
html_entity_decode( '[email protected]');
}
add_filter( 'wp_mail_from'、 'woo_custom_wp_mail_from'、99);

17 – WooCommerceメールの名前からデコード

function woo_custom_wp_mail_from_name(){
グローバル$ woocommerce;
return html_entity_decode(get_option( 'woocommerce_email_from_name'));
}
add_filter( 'wp_mail_from_name'、 'woo_custom_wp_mail_from_name'、99);

function woo_custom_wp_mail_from(){
グローバル$ woocommerce;
return html_entity_decode(get_option( 'woocommerce_email_from'));
}
add_filter( 'wp_mail_from_name'、 'woo_custom_wp_mail_from_name'、99);

18 –注目の商品IDを返す

function woo_get_featured_product_ids(){
//キャッシュから読み込む
$ featured_product_ids = get_transient( 'wc_featured_products');

//有効なキャッシュが見つかりました
if(false!== $ featured_product_ids)
$ featured_product_idsを返します。

$ featured = get_posts(array(
'post_type' => array( 'product'、 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'publish',
'meta_query' => array(
アレイ(
'キー' => '_可視性',
'value' => array( 'catalog'、 'visible'),
'比較' => 'IN'
),
アレイ(
'key' => '_featured',
'値' => 'はい'
)
),
'フィールド' => 'id =>親'
));

$ product_ids = array_keys($ featured);
$ parent_ids = array_values($ featured);
$ featured_product_ids = array_unique(array_merge($ product_ids、$ parent_ids));

set_transient( 'wc_featured_products'、$ featured_product_ids);

$ featured_product_idsを返します。
}

19 –カスタムフィールドを追加して住所ページを編集する

//アドレスページを編集するフィールドを追加します
function woo_add_edit_address_fields($ fields){

$ new_fields = array(
'date_of_birth' => array(
'label' => __( '生年月日'、 'woocommerce'),
'必須' => false,
'クラス' =>配列( 'フォーム行'),
),
);

$ fields = array_merge($ fields、$ new_fields);

$ fieldsを返します。

}

add_filter( 'woocommerce_default_address_fields'、 'woo_add_edit_address_fields');

20 –オンセール製品カタログのショートコードを表示する

function woocommerce_sale_products($ atts){

グローバル$ woocommerce_loop;

extract(shortcode_atts(array(
'per_page' => '12',
'列' => '4',
'orderby' => '日付',
'order' => 'desc'
)、$ atts));

$ woocommerce_loop ['columns'] = $ columns;

$ args = array(
'post_type' => '製品',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'注文' => $注文,
'meta_query' => array(
アレイ(
'キー' => '_可視性',
'value' => array( 'catalog'、 'visible'),
'比較' => 'IN'
),
アレイ(
'key' => '_sale_price',
'値' => 0,
'比較' => '>',
'タイプ' => '数値'
)
)
);
query_posts($ args);
ob_start();
woocommerce_get_template_part( 'loop'、 'shop');
wp_reset_query();

ob_get_clean();を返します。
}

add_shortcode( 'sale_products'、 'woocommerce_sale_products');

21 –セール商品がある

function woo_have_onsale_products(){

グローバル$ woocommerce;

//製品を販売する
$ product_ids_on_sale = array_filter(woocommerce_get_product_ids_on_sale());

if(!empty($ product_ids_on_sale)){
trueを返します。
} そうしないと {
falseを返します。
}

}

//例:
if(woo_have_onsale_products()){
echo '販売商品を持っている';
} そうしないと {
「販売商品なし」をエコーし​​ます。
}

22 –最小注文額を設定する

add_action( 'woocommerce_checkout_process'、 'wc_minimum_order_amount');
function wc_minimum_order_amount(){
グローバル$ woocommerce;
$最小= 50;
if($ woocommerce-> cart-> get_cart_total(); < $minimum ) {
$woocommerce->add_error(sprintf( '注文するには最低%sの注文が必要です。'、$ minimum));
}
}

23 –ショップページの価格、日付、またはタイトルで注文

add_filter( 'woocommerce_default_catalog_orderby'、 'custom_default_catalog_orderby');

function custom_default_catalog_orderby(){
「日付」を返します。 //タイトルと価格も使用できます
}

24 –カートに追加ボタンをチェックアウトページにリダイレクトする

add_filter( 'add_to_cart_redirect'、 'redirect_to_checkout');

function redirect_to_checkout(){
グローバル$ woocommerce;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url();
$ checkout_url;を返します。
}

25 –注文完了時にメール受信者を追加する

function woo_extra_email_recipient($ recipient、$ object){
$ recipient = $ recipient。 '、your @ email.com';
$ recipientを返します。
}
add_filter( 'woocommerce_email_recipient_customer_completed_order'、 'woo_extra_email_recipient'、10、2);

以上です!これらのスニペットが便利で、テスト済みで問題なく機能することを願っていますが、問題が発生した場合はコメントセクションからお知らせください。楽しんで! ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me