WooCommerceコード収集
15566 ワード
トップページと分類ページの各ページの製品数を変更
各ページに表示される製品のデフォルトは設定に従います»設定を読む»ブログページに表示される値は、製品インデックスページとブログインデックスページで異なる設定を使用するには、次のコードを使用して製品インデックスページごとに製品数を個別に設定します.
コードコメント:各ページに24個の製品が表示されます.コードはトピックのfunctionsに置く.phpでいい
以下はWooCommerceに適した短いコードを整理し、閲覧と使用を便利にし、さらに考えを整理し、自分を高めるためです.以下WooCommerceはWCと略称し、コードはテーマのfunctionsに置く.phpでいいです.
WooCommrce公式コードセット»
WooCommerceのサポートをトピックに宣言
WooCommerceのデフォルトスタイルを無効にする
デフォルトのスタイルを無効にするには、自分のスタイルを導入し、styleに直接書くことができます.cssでは、別のスタイルシートを書くこともできます
スタイルシートにWooCommerceのデフォルトのピクチャが使用されている場合は、woocommerce/assets/imagesフォルダの下のピクチャをトピックディレクトリにコピーする必要があります.
WCパン屑ナビゲーション
パンくずのナビゲーション位置の変更
まずデフォルトのパンくずナビゲーションを削除
ナビゲーションをheaderなどの他の場所に追加します.phpではheaderに直接php適切な位置に次のコードを挿入します.
add_も使えますアクションの追加、たとえば
どのようなhooksが利用できるか分かりませんか?ではWCに内蔵されているActionsとFiltersについて
パンくずナビゲーションのパラメータの変更
パラメータコメント:
delimiter:区切り記号
wrap_before:開始ラベル
wrap_after:終了ラベル
before:開始ラベルの後、パンくずナビゲーションリンクの前の内容
after:パンくずナビゲーションリンク後、ラベル終了前の内容
ホーム:トップページの文字、例えばトップページにfont-awesomeを付けるように設定できます.
ページング・ナビゲーションのパラメータの変更
パラメータコメント:
prev_text:ページをめくるボタンの文字
next_text:ページをめくるボタンの文字
end_size:ページはヘッダー、中間、後、末尾の3つの部分に分けて表示され、中間は省略記号で区切られ、このパラメータはヘッダーと末尾が何ページ表示されるかを制御します.
mid_size:中間表示のページ数を制御する
トップページと分類ページの1行あたりの製品数の変更
なお、WCの各行の製品数は、各行の最初の製品要素に追加する.first class、各行の最後の追加.last classは実装されているので、このコードは幅に関係なく、どこで強制的に改行するかを決定するしかありません.つまり、1行に4つの製品を表示するように設定すると、liごとの幅が1/4になることは期待できません.この幅はスタイルシートで設定されています.スタイルシートで設定された幅が1行に3つしか置けない場合、コード設定で1行に4つ表示されると、各行の数が等しくなります.
リスト・ページの各製品に製品の説明を追加
関連製品リストの非表示
デフォルトの製品ページの下部に関連する製品の欄があります.この欄を削除するには、次のコードを使用します.
関連製品リストの1行あたりの製品数の変更
woocommerce_を再定義するoutput_related_Products関数の方法は関連製品の数を変更し、同じように改行の位置を変更するだけで、適切なcssに合わせて幅を設定する必要があります.
コードコメント:各製品ページに最大10個の関連製品を表示し、各行に3個表示します.
製品サムネイルの各行数の変更
トップページの製品の1行あたりの数量と同様に、追加することによって.firstと.Last class実装では、本当に自分の望む効果を達成するには、適切なスタイルを追加します.
「Add To Cart」ボタンのテキストを変更
このコードはCatalog Modeの実装に非常に有用である.
通貨記号の変更
コード注記:オーストラリアドルの通貨記号をデフォルトの$からAUD$に変更します.
カスタムソートオプションの追加
次のコードは、ランダムソート(Random)オプションを追加する方法を示しています.他のオプションを追加する方法は似ています.
オーダーに追加料金/手数料を追加
以下のコードは、各商品の費用と運賃の合計の1%を追加費用として受け取ることを示しています.
支払いが成功したらすぐにInvoiceを送信します
コード:azhowto.com
製品リストページ:カートボタンを入れてタイトルの前に移動
製品リストページ:リンクの追加
次のコードは、タイトルの前にリンクを追加する方法を示します.
製品リストページボタンテキストの変更
製品リストページのボタン文字は、一般的にadd to cart、select options、view options、read moreです.次のコードは、これらのボタン文字を変更する方法を示しています.コードを使用する場合は、必要なものだけを選択します.例えば、view optionsを変更するにはadd_filter(‘grouped_add_to_cart_text’,‘wc_add_to_cart_text’)、その他の削除.
製品に属性があるかどうかにかかわらず、カートに追加するボタンの名前はPurchaseです.
製品ページ「Reviews」タブの削除
製品ページカスタムタブの追加
custom fieldで書くfeaturesタブを追加します.
Shop Baseページのブラウザタイトルの変更
ショップページのデフォルトのブラウザタイトル(Browser Title)はProductsです.このページはcustom post type archiveページです.コンテンツ領域のタイトルはページのタイトルに従いますが、ブラウザタイトルはWordPressのデフォルトで、Productsはcustom post typeなので、archiveページタイトルはlabel名です.
上記のコードは、ページのタイトルをbrowser titleにすることができます.
ユーザーがアクセスすると自動的にカートに製品が追加されます
仮想製品:支払いが成功すると、注文ステータスがすぐにCompleteに変わります.
コード:http://www.skyverge.com/product/woocommerce-order-status-control/
http://www.solagirl.net/woocommerce-code-sinppets.html
各ページに表示される製品のデフォルトは設定に従います»設定を読む»ブログページに表示される値は、製品インデックスページとブログインデックスページで異なる設定を使用するには、次のコードを使用して製品インデックスページごとに製品数を個別に設定します.
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 24;' ), 20 );
コードコメント:各ページに24個の製品が表示されます.コードはトピックのfunctionsに置く.phpでいい
以下はWooCommerceに適した短いコードを整理し、閲覧と使用を便利にし、さらに考えを整理し、自分を高めるためです.以下WooCommerceはWCと略称し、コードはテーマのfunctionsに置く.phpでいいです.
WooCommrce公式コードセット»
WooCommerceのサポートをトピックに宣言
add_action( 'after_setup_theme', 'woocommerce_support' );
function woocommerce_support() {
add_theme_support( 'woocommerce' );
}
WooCommerceのデフォルトスタイルを無効にする
// Disable WooCommerce styles
define('WOOCOMMERCE_USE_CSS', false);
デフォルトのスタイルを無効にするには、自分のスタイルを導入し、styleに直接書くことができます.cssでは、別のスタイルシートを書くこともできます
function wp_enqueue_woocommerce_style(){
wp_register_style( 'woocommerce', get_template_directory_uri() . '/css/woocommerce.css' );
if ( class_exists( 'woocommerce' ) ) {
wp_enqueue_style( 'woocommerce' );
}
}
add_action( 'wp_enqueue_scripts', 'wp_enqueue_woocommerce_style' );
スタイルシートにWooCommerceのデフォルトのピクチャが使用されている場合は、woocommerce/assets/imagesフォルダの下のピクチャをトピックディレクトリにコピーする必要があります.
WCパン屑ナビゲーション
パンくずのナビゲーション位置の変更
まずデフォルトのパンくずナビゲーションを削除
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0);
ナビゲーションをheaderなどの他の場所に追加します.phpではheaderに直接php適切な位置に次のコードを挿入します.
if( function_exists( 'woocommerce_breadcrumb') ) woocommerce_breadcrumb();
add_も使えますアクションの追加、たとえば
add_action( 'woocommerce_after_main_content', 'woocommerce_breadcrumb' );
どのようなhooksが利用できるか分かりませんか?ではWCに内蔵されているActionsとFiltersについて
パンくずナビゲーションのパラメータの変更
// Code source: https://gist.github.com/dwiash/4064836
function my_woocommerce_breadcrumbs() {
return array(
'delimiter' => ' / ',
'wrap_before' => '<nav itemprop="breadcrumb">',
'wrap_after' => '</nav>',
'before' => '',
'after' => '',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
);
}
add_filter( 'woocommerce_breadcrumb_defaults', 'my_woocommerce_breadcrumbs' );
パラメータコメント:
delimiter:区切り記号
wrap_before:開始ラベル
wrap_after:終了ラベル
before:開始ラベルの後、パンくずナビゲーションリンクの前の内容
after:パンくずナビゲーションリンク後、ラベル終了前の内容
ホーム:トップページの文字、例えばトップページにfont-awesomeを付けるように設定できます.
'home' => _x( '<i></i> Home', 'breadcrumb', 'woocommerce' ),
ページング・ナビゲーションのパラメータの変更
// Change args of wc pagination
add_filter( 'woocommerce_pagination_args', 'theme_wc_pagination_args' );
function theme_wc_pagination_args( $args ){
$args['prev_text'] = '« Previous page';
$args['next_text'] = 'Next page »';
$args['end_size'] = 3;
$args['mid_size'] = 3;
return $args;
}
パラメータコメント:
prev_text:ページをめくるボタンの文字
next_text:ページをめくるボタンの文字
end_size:ページはヘッダー、中間、後、末尾の3つの部分に分けて表示され、中間は省略記号で区切られ、このパラメータはヘッダーと末尾が何ページ表示されるかを制御します.
mid_size:中間表示のページ数を制御する
トップページと分類ページの1行あたりの製品数の変更
なお、WCの各行の製品数は、各行の最初の製品要素に追加する.first class、各行の最後の追加.last classは実装されているので、このコードは幅に関係なく、どこで強制的に改行するかを決定するしかありません.つまり、1行に4つの製品を表示するように設定すると、liごとの幅が1/4になることは期待できません.この幅はスタイルシートで設定されています.スタイルシートで設定された幅が1行に3つしか置けない場合、コード設定で1行に4つ表示されると、各行の数が等しくなります.
/* Change the number of products per column */
add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
function loop_columns() {
return 5;
}
}
リスト・ページの各製品に製品の説明を追加
// Add product description
function theme_wc_single_excerpt(){
global $post;
echo '<div>' . apply_filters( 'woocommerce_short_description', $post->post_excerpt ) . '</div>';
}
add_action( 'woocommerce_after_shop_loop_item_title', 'theme_wc_single_excerpt' );
関連製品リストの非表示
デフォルトの製品ページの下部に関連する製品の欄があります.この欄を削除するには、次のコードを使用します.
function wc_remove_related_products( $args ) {
return array();
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);
関連製品リストの1行あたりの製品数の変更
woocommerce_を再定義するoutput_related_Products関数の方法は関連製品の数を変更し、同じように改行の位置を変更するだけで、適切なcssに合わせて幅を設定する必要があります.
/* Change number of relapted products */
function woocommerce_output_related_products() {
woocommerce_related_products(10,3); // Display 10 products in rows of 3
}
コードコメント:各製品ページに最大10個の関連製品を表示し、各行に3個表示します.
製品サムネイルの各行数の変更
トップページの製品の1行あたりの数量と同様に、追加することによって.firstと.Last class実装では、本当に自分の望む効果を達成するには、適切なスタイルを追加します.
add_filter ( 'woocommerce_product_thumbnails_columns', 'woo_thumb_cols' );
function woo_thumb_cols() {
return 4; // .last class applied to every 4th thumbnail
}
「Add To Cart」ボタンのテキストを変更
function woo_custom_cart_button_text() {
return __('My Button Text', 'woocommerce');
}
add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text');
このコードはCatalog Modeの実装に非常に有用である.
通貨記号の変更
function change_existing_currency_symbol( $currency_symbol, $currency ) {
switch( $currency ) {
case 'AUD': $currency_symbol = 'AUD$'; break;
}
return $currency_symbol;
}
add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
コード注記:オーストラリアドルの通貨記号をデフォルトの$からAUD$に変更します.
カスタムソートオプションの追加
次のコードは、ランダムソート(Random)オプションを追加する方法を示しています.他のオプションを追加する方法は似ています.
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'random_list' == $orderby_value ) {
$args['orderby'] = 'rand';
$args['order'] = '';
$args['meta_key'] = '';
}
return $args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_catalog_orderby( $sortby ) {
$sortby['random_list'] = __('Sort by random order');
return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
オーダーに追加料金/手数料を追加
以下のコードは、各商品の費用と運賃の合計の1%を追加費用として受け取ることを示しています.
add_action( 'woocommerce_calculate_totals','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$percentage = 0.01;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Surcharge', $surcharge, false, '' );
$woocommerce->cart->fee_total += $surcharge;
}
支払いが成功したらすぐにInvoiceを送信します
コード:azhowto.com
/**
* send invoice straight away if payment is successful
* @param string $order_id valid payment order id
* @return null
*/
function send_invoice_upon_payment_successful($order_id) {
global $woocommerce;
$order = new WC_Order($order_id);
$mailer = $woocommerce->mailer();
$mailer->customer_invoice( $order );
}
add_action('woocommerce_payment_complete', 'send_invoice_upon_payment_successful');
製品リストページ:カートボタンを入れてタイトルの前に移動
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_add_to_cart', 10 );
製品リストページ:リンクの追加
次のコードは、タイトルの前にリンクを追加する方法を示します.
add_action( 'woocommerce_before_shop_loop_item_title', 'wc_template_loop_additional_links', 10 );
function wc_template_loop_additional_links(){
?>
<a href="#" class="button1-link button product_type_simple">Button 1 </a>
<a href="#" class="button2-link button product_type_simple">Button 2 </a>
<?php
}
製品リストページボタンテキストの変更
製品リストページのボタン文字は、一般的にadd to cart、select options、view options、read moreです.次のコードは、これらのボタン文字を変更する方法を示しています.コードを使用する場合は、必要なものだけを選択します.例えば、view optionsを変更するにはadd_filter(‘grouped_add_to_cart_text’,‘wc_add_to_cart_text’)、その他の削除.
add_filter( 'variable_add_to_cart_text', 'wc_add_to_cart_text' ); // select options
add_filter( 'grouped_add_to_cart_text', 'wc_add_to_cart_text' ); // view options
add_filter( 'add_to_cart_text', 'wc_add_to_cart_text' ); // add to cart
add_filter( 'external_add_to_cart_text', 'wc_add_to_cart_text' ); // read more
add_filter( 'not_purchasable_text', 'wc_add_to_cart_text' );// read more
add_filter( 'out_of_stock_add_to_cart_text', 'wc_add_to_cart_text' );// read more
function wc_add_to_cart_text(){
return 'Purchase';
}
製品に属性があるかどうかにかかわらず、カートに追加するボタンの名前はPurchaseです.
製品ページ「Reviews」タブの削除
add_filter( 'woocommerce_product_tabs', 'wc_remove_reviews_tab' );
function wc_remove_reviews_tab( $tabs ){
unset($tabs['reviews']);
return $tabs;
}
製品ページカスタムタブの追加
custom fieldで書くfeaturesタブを追加します.
//Add custom tab
add_filter( 'woocommerce_product_tabs', 'wc_add_features_tab' );
function wc_add_features_tab( $tabs ){
global $product;
$content = get_post_meta( $product->id, 'product_features', true );
if( !empty($content) ) {
$tabs[ 'features' ] = array(
'title' => 'Features',
'priority' => 1,
'callback' => 'wc_features_tabs_panel_content',
'content' => $content, // custom field
);
}
return $tabs;
}
function wc_features_tabs_panel_content( $key, $tab ){
echo '<h2>' . $tab['title'] . '</h2>';
echo $tab['content'];
}
Shop Baseページのブラウザタイトルの変更
// Change the browser title of shop base page
add_filter('post_type_archive_title', 'theme_wc_shop_browser_title' );
function theme_wc_shop_browser_title( $title ){
if( $title == __('Products', 'woocommerce')){
$shop_page_id = woocommerce_get_page_id( 'shop' );
$page_title = get_the_title( $shop_page_id );
return $page_title;
}
return $title;
}
ショップページのデフォルトのブラウザタイトル(Browser Title)はProductsです.このページはcustom post type archiveページです.コンテンツ領域のタイトルはページのタイトルに従いますが、ブラウザタイトルはWordPressのデフォルトで、Productsはcustom post typeなので、archiveページタイトルはlabel名です.
上記のコードは、ページのタイトルをbrowser titleにすることができます.
ユーザーがアクセスすると自動的にカートに製品が追加されます
// add item to cart on visit
add_action( 'init', 'add_product_to_cart' );
function add_product_to_cart() {
if (!is_admin()) {
global $woocommerce;
$product_id = 64;
$found = false;
//check if product already in cart
if (sizeof($woocommerce->cart->get_cart()) > 0) {
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $product_id)
$found = true;
}
// if product not found, add it
if (!$found)
$woocommerce->cart->add_to_cart($product_id);
} else {
// if no products in cart, add it
$woocommerce->cart->add_to_cart($product_id);
}
}
}
仮想製品:支払いが成功すると、注文ステータスがすぐにCompleteに変わります.
コード:http://www.skyverge.com/product/woocommerce-order-status-control/
add_filter( 'woocommerce_payment_complete_order_status', 'virtual_order_payment_complete_order_status', 10, 2 );
function virtual_order_payment_complete_order_status( $order_status, $order_id ) {
$order = new WC_Order( $order_id );
if ( 'processing' == $order_status &&
( 'on-hold' == $order->status || 'pending' == $order->status || 'failed' == $order->status ) ) {
$virtual_order = null;
if ( count( $order->get_items() ) > 0 ) {
foreach( $order->get_items() as $item ) {
if ( 'line_item' == $item['type'] ) {
$_product = $order->get_product_from_item( $item );
if ( ! $_product->is_virtual() ) {
// once we've found one non-virtual product we know we're done, break out of the loop
$virtual_order = false;
break;
} else {
$virtual_order = true;
}
}
}
}
// virtual order, mark as completed
if ( $virtual_order ) {
return 'completed';
}
}
// non-virtual order, return original status
return $order_status;
}
http://www.solagirl.net/woocommerce-code-sinppets.html