Alvin Woocommerce Workshop

Alvin Woocommerce Workshop 此专页是建立是为了分享、提供一些小贴士,让大家能够在开发或学习woocomm

Woocommerce小贴士:今天想跟大家分享如何防止顾客在您的电商平台里面,使用多个折扣券。如果你是有使用一些discount plugin,比如Woo Discount Rules,这些都可以在你的plugin里面的设定处理,但是如果你...
29/09/2021

Woocommerce小贴士:

今天想跟大家分享如何防止顾客在您的电商平台里面,使用多个折扣券。如果你是有使用一些discount plugin,比如Woo Discount Rules,这些都可以在你的plugin里面的设定处理,但是如果你没有这些plugin,也没有问题。你可以使用以下的程序码,这样顾客输入了第一个折扣券,那就不能继续输入第二个,就算你刷新网页,折扣券的栏位也会自动消失。如果你要换不同的折扣券,那你就是需要删除现有已经被输入的折扣券,然后再输入过新的折扣券。

add_filter( 'woocommerce_coupons_enabled', 'remove_coupon_field_after_use' );
function remove_coupon_field_after_use( $coupons_enabled ) {
global $woocommerce;
if ( ! empty( $woocommerce->cart->applied_coupons ) ) {
return false;
}
return $coupons_enabled;
}

Woocommerce小贴士:有时如果你的网店有许多符合运送地区但又有几种不同的运费,给顾客选择的同时又感觉界面有些复杂,那或许你可以考虑让Woocommerce自动选择最廉价的选项,而不是显示所有运输费用一一列出来,那你可以使用以下的ho...
10/09/2021

Woocommerce小贴士:

有时如果你的网店有许多符合运送地区但又有几种不同的运费,给顾客选择的同时又感觉界面有些复杂,那或许你可以考虑让Woocommerce自动选择最廉价的选项,而不是显示所有运输费用一一列出来,那你可以使用以下的hooks去隐藏其他稍微贵一些的运费选项。

你只是需要把以下的程序码放置在子主题里面的function.php或是code snippet里面即可。

add_action( 'woocommerce_package_rates', 'show_cheapest_shipping_rate', 10, 2 );
function show_cheapest_shipping_rate( $rates, $package ) {

$cheapest_method = '';

// Loop through shipping rates
if ( is_array( $rates ) ) :
foreach ( $rates as $key => $rate ) :

// Set variables when the rate is cheaper than the one saved
if ( empty( $cheapest_method ) || $rate->cost < $cheapest_method->cost ) :
$cheapest_method = $rate;
endif;

endforeach;
endif;

// Return the cheapest rate when possible
if ( ! empty( $cheapest_method ) ) :
return array( $cheapest_method->id => $cheapest_method );
endif;

return $rates;

}

祝大家国庆日快乐,希望很快全球 “疫”过天晴
31/08/2021

祝大家国庆日快乐,希望很快全球 “疫”过天晴

Woocommerce小贴士:今天要跟大家分享的就是如何设定免邮的信息呈现,尤其是你也许有设定购买超过500或以上,可以享有免邮的优惠。那其实在顾客选择商品的时候,我们可以在单一产品页面里面,或是购物车上方显示,对方只是需要额外购买多少就可...
31/08/2021

Woocommerce小贴士:

今天要跟大家分享的就是如何设定免邮的信息呈现,尤其是你也许有设定购买超过500或以上,可以享有免邮的优惠。那其实在顾客选择商品的时候,我们可以在单一产品页面里面,或是购物车上方显示,对方只是需要额外购买多少就可以享有此优惠,以下的程序码可以教大家如何更好的抓住顾客的心态,提升顾客在你的电商网站里面的购买欲。

此程序码可以设定在您的子主题里面的function.php或是code snippet里面。

1. 若您是想放置在单一产品页里面,可以设定以下的程序码。

// Display notification message in the single product page
add_action( 'woocommerce_share', 'wc_single_product_page_notice' );

function wc_single_product_page_notice() {
$min_amount = 500; //This is the amount of your free shipping threshold. Change according to your free shipping settings
$current = WC()->cart->subtotal;
if ( $current < $min_amount ) {
$added_text = 'Buy ' . wc_price( $min_amount - $current ) . ' worth products more to get free shipping'; // This is the message shown on the single product page
$return_to = wc_get_page_permalink( 'shop' );
$notice = sprintf( '%s%s', $added_text, esc_url( $return_to ), 'Continue shopping' ); // This is the text shown below the notification. Link redirects to the shop page
echo $notice;
}
}

2. 若您是想放置在购物车页里面,可以设定以下的程序码。
// Display notification message above the cart page
add_action( 'woocommerce_before_cart_table', 'wc_cart_page_notice' );

function wc_cart_page_notice() {
$min_amount = 500; //This is the amount of your free shipping threshold. Change according to your free shipping settings
$current = WC()->cart->subtotal;
if ( $current < $min_amount ) {
$added_text = 'Buy ' . wc_price( $min_amount - $current ) . ' worth products more to get free shipping'; // This is the message shown on the cart page
$return_to = wc_get_page_permalink( 'shop' );
$notice = sprintf( '%s%s', $added_text, esc_url( $return_to ), 'Continue shopping' ); // This is the text shown below the notification. Link redirects to the shop page
echo $notice;
}
}

以上的最低消费可享有的免邮优惠,可以随着您的电商网站的条规另作更改。希望以上的小小分享,可以帮助到有需要的您!加油 💪

Woocommerce小贴士:之前有朋友提出如何设定运费的原价,然后需要割掉价格,然后显示0.00或是免邮,今天我就教大家如何设定这样的程序。方法其实很简单,如果你的网店一律都是免运费的,那你设定好你的运费,为FLAT RATE 0.00或...
25/08/2021

Woocommerce小贴士:

之前有朋友提出如何设定运费的原价,然后需要割掉价格,然后显示0.00或是免邮,今天我就教大家如何设定这样的程序。

方法其实很简单,如果你的网店一律都是免运费的,那你设定好你的运费,为FLAT RATE 0.00或是直接用FREE SHIPPING的方式。你只是需要加入以下的程序码即可。把此程序码加入进去你的子主题里面的function.php或是code snippet里面即可。

add_filter('woocommerce_cart_shipping_method_full_label', 'show_original_and_zero_price', 10, 2);
function show_original_and_zero_price($label, $method) {
$label = $method->get_label();
$label .= ' $20.00 ' . wc_price( $method->cost );

return $label;
}

上方的$20.00是依据你要显示出来的运费原价,当然显示的部分就是会在你的原价那边割除一横,然后也不会加入进去顾客的购物总数额里面,显示的output就如以下的截图一样。

希望以上小小的分享,可以帮助到有需要的你!

Woocommerce小贴士:今天和大家分享如何分开Woocommerce本身的Registration和Login界面,其实很简单,除了你可以尝试一些plugin可以用Tab merge在一起,你也是可以用程序码去执行。你只是需要把两个功...
19/08/2021

Woocommerce小贴士:

今天和大家分享如何分开Woocommerce本身的Registration和Login界面,其实很简单,除了你可以尝试一些plugin可以用Tab merge在一起,你也是可以用程序码去执行。你只是需要把两个功能用code snippet拆开来,然后创建自己的代码即可。以下将教你如何设定不同的代码,然后用于Woocommerce site里面。以下的程序码只是想要复制在子主题里面的function.php或是code snippet里面即可。

设定单一的注册界面
使用在页面的代码是:wc_mycustom_registration

add_shortcode( 'wc_mycustom_registration', 'my_custom_registration_form' );

function my_custom_registration_form() {
if ( is_admin() ) return;
if ( is_user_logged_in() ) return;
ob_start();


do_action( 'woocommerce_before_customer_login_form' );

?>





*

Woocommerce小贴士:这个分享是关于最近有一些国外的朋友问我关于运费计算的问题,需要依据地区 + 消费额多少去计算运费。其实之前我也分享过给大家,那就是依据地区设定运费。它的原理和我们设定邮区来计算运费是一样的,因为我们是使用邮区的...
17/08/2021

Woocommerce小贴士:

这个分享是关于最近有一些国外的朋友问我关于运费计算的问题,需要依据地区 + 消费额多少去计算运费。其实之前我也分享过给大家,那就是依据地区设定运费。它的原理和我们设定邮区来计算运费是一样的,因为我们是使用邮区的栏位,然后客制我们所需要的地区,设定进去。然后顾客在结账页的时候,依据选择送货地区,然后网站就会自动执行运费计算。这里只是个升级版,那就是我们会依据以下的运费的条件,设定在Woocommerce,
1. 依据地区设定不同的运费,
2. 同时也依据购买的消费或是重量,然后多少是免邮,购买低于多少会征收多少运费,

以下是所需要执行的步骤:
步骤一
安装CHECKOUT FIELD EDITOR (by ThemeHigh)plugin,然后启动它。

步骤二
打开Woocommerce > Checkout Form,然后在billing那一栏找寻Postcode,点击Edit,然后把caption改为送货地区或是你想要出现的名称,修改了就储存。

步骤三
去到Appearance > Theme Editor, 打开右手边您的子主题,也就是child theme。然后找寻function.php,拉到最下放ENTER新的一行,然后放入以下程序码,

add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_postcode_field' );
function custom_override_default_postcode_field( $address_fields ) {
$postcode_array = array(
'Location A' => "Location A",
'Location B' => "Location B",
'Location C' => "Location C"
);
$address_fields['postcode']['type'] = 'select';
$address_fields['postcode']['options'] = $postcode_array;
return $address_fields;
}
以上所执行的程序是我们用邮区栏位,来客制我们的送货地区,然后依据这个选项,待会系统可以自动计算运费。

步骤四
点击Woocommerce > Settings,在shipping那一个tab,Add Shipping Zone,然后放入个别地区的名称在Zone Name,然后如果你所售卖的产品只是一个国家,第二个选项就不用填入 只是现有在limit to specific zip那边点击,然后在格子内放置你之前客制的地区名字,必须要一致才可以,以上的例子是Location A 或是Location B 或是 Location C。记得设定在shipping zone里面,也需要要设定三个。

步骤五
下面就是点击如果你是选择什么地区就一个单一收费,可以用flat rate。但是如果你除了地区,也有分购买超过多少,就给与折扣还是另外一个运费,那你可以用我在下面推荐的weight base shipping plugin,可以用这个去设定你的条例。若你只是需要依据地区计算运费,而不需要再依据消费多少而决定运费,那你可以止步于此,不需要继续步骤六。

步骤六
安装Weight Base Shipping plugin,然后在shipping zone里面,选择weight base shipping,然后添加新的shipping rules。在设定里面几样东西需要填写的就是,LABEL, NAME, ORDER WEIGHT OR ORDER TOTAL, 还有BASE COST,购买多少是选择ORDER TOTAL,而如果你是使用重量才用ORDER WEIGHT,首先你的产品一定需要设定重量,以KG计算,然后设定你的BASE COST也就是需要的运费多少,就填入此栏位。如果购买超过多少,可以得到免运费,那BASE COST那边你就只是需要设定0即可。这边你可以设定很多不同的消费额,然后设定不同的运费。

** 为什么我们需要使用邮区栏位,而不是自定的一个custom field呢?其实原理也很简单,因为结账页的那边,Woocommerce本身已经有逻辑依据里面的那几个运送地址的栏位,其中包括了邮区栏位,若有任何更改,那网站将会自动依据你在shipping zone里面的设定,而出现相关的运费。如果我们运用custom field,那我们就要额外的写程序去执行,所以不需要多此一举去设定另外的栏位做客制。

Woocommerce小贴士:很多时候当你运用同一个网站的时候,但是却需要经营很多不同区域的分店网站订单而依据每个不同区域安排运送服务,也许你会想这种情形我们应该怎样去解决?这里给你个小贴士,你只是需要按照以下的步骤,你就可以用Woocom...
08/08/2021

Woocommerce小贴士:

很多时候当你运用同一个网站的时候,但是却需要经营很多不同区域的分店网站订单而依据每个不同区域安排运送服务,也许你会想这种情形我们应该怎样去解决?这里给你个小贴士,你只是需要按照以下的步骤,你就可以用Woocommerce轻松解决。

1. 设定主要产品分类用作区域之分,比如LOCATION A一个类别, LOCATION B又是另外一个类别,

2. 然后设定每个区域一个管理员登入账号,每个区域的管理员就会依据他们各自的账号登入,然后创建他们的产品价格,规格等等,然后把自己店铺的商品分类去他们属于的LOCATION,这里可以是A OR B,

3. 接下来就是如何避免顾客会把两种不同种类的区域产品加入购物车后呢?其实很简单,只是需要采用以下的code snippet,我们可以依据每个区域的管理员账号,然后阻止不同账号的商品同在一个购物车里,以下的程序码只是需要加入进去子主题的function.php 或是 code snippet即可。

add_action( 'woocommerce_add_to_cart_validation', function( $is_allow, $product_id, $quantity ) {
$product = get_post( $product_id );
$product_author = $product->post_author;

//Iterating through each cart item
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$cart_product_id = $cart_item['product_id'];
$cart_product = get_post( $cart_product_id );
$cart_product_author = $cart_product->post_author;
if( $cart_product_author != $product_author ) {
$is_allow = false;
break;
}
}

if( !$is_allow ){
// We display an error message
wc_clear_notices();
wc_add_notice( __( "您所添加的产品不属于同一个分店的产品,请先删除再订购相同的分店产品! !", "wcfm-ecogear" ), 'error' );
}

return $is_allow;
}, 50, 3 );

通过以上的方法,你就可以创建一个可以容纳不同分店的一个统一的网站管理。其实除了用不同管理员账号,我们也可以采用product category去侦测,然后阻止不同种类的产品加入。

若你还需要更详细或是专业的woocommerce建议,可以FB inbox联系Alvin!!

WordPress小贴士:有时我们会碰到在修改网页或是文章的时候,每修改一次后,储存的时间会耗时很久,或是越修改越慢。这种情况下,我可以建议你调整两个设定,这些设定其实可以帮助你设定1. 自动储存的时限,2. 把原本的无限制的revisio...
04/08/2021

WordPress小贴士:

有时我们会碰到在修改网页或是文章的时候,每修改一次后,储存的时间会耗时很久,或是越修改越慢。这种情况下,我可以建议你调整两个设定,这些设定其实可以帮助你设定
1. 自动储存的时限,
2. 把原本的无限制的revision设定,调整为N-次或是关掉,以减轻主机的资源。

1. 自动储存的时限,default WordPress的自动储存时限是每60秒会自动跑一次,其实我们真的需要那么短时间就让系统帮你自动储存内容吗?其实不然,我们可以设定每5-10分钟一次,或是更久。设定这个可以你的site root folder里面的wp-config.php里面增加以下的设定,

define('AUTOSAVE_INTERVAL', 600);

600是代表10分钟,你可以依据你要设定的分钟,设定进去。

2. 如何设定需要储存几个版本的网页、文章内容,
你也是可以通过以下的设定在wp-config.php调整即可,

define( 'WP_POST_REVISIONS', 5 );

5 代表5个版本,即系统储存到5个版本的内容不同,即会循环的重复的储存。如果你不需要revision版本的存在,那可以设定 5 换成 0. 这个revision版本的意思是给与你,如果你在编辑你的页面、文章的时候,稍微出现了任何错误的修改,而你需要还原,那你就可以用revision把原有的内容还原。

Woocommerce小贴士:今天想和大家推荐一个实用的woocommerce plugin,就是TYCHES SOFTWARES的WOOCOMMERCE ABANDONED CART PRO (有免费也有付费版本)。每次我们在做wooco...
30/07/2021

Woocommerce小贴士:

今天想和大家推荐一个实用的woocommerce plugin,就是TYCHES SOFTWARES的WOOCOMMERCE ABANDONED CART PRO (有免费也有付费版本)。每次我们在做woocommerce的任何分析的时候,很多时候会发现许多顾客都会停留在cart page或是checkout page就止步,其中会发生的可能性也许可能很多,可能网络慢的问题,有突发事情没有继续,或是有些购买决定但是又犹豫的感觉,那你安装这个plugin其实可以提升顾客对您的平台的青睐。

这个plugin可以给你设定当顾客加入购物车后的n-分钟,如果没有及时结账付款,那这个功能可以自动启动。启动了,顾客即刻可以收到电邮,可以提醒顾客尚有哪些商品还未结账,其实如果你要提升对方的购买欲,你也可以借此机会放置你想提供的电子折扣券于电邮里面,方便顾客即刻得到购买的优惠。这类的销售方式很多时候都可以帮你提升你的每日销售额,所以大家可以不妨尝试看看。

还有付费版本其实也可以有连接SMS的功能,这个功能虽说需要连接TWILLIO,而增加一些信息费用,但是若顾客及时收到此信息,对方也应该会对你的平台另眼相看。

WooCommerce Abandoned Cart Pro - allows you to recover sales with WooCommerce by following up on abandoned shopping carts via reminders and discounts.

Woocommerce小贴士:今天分享一些资讯教导大家如何在你的电商平台的结账页,加入你要的一些信息,这些信息有可能是1. 关于你的运输所需要耗费的时间,以通知顾客,2. 关于促销的一些信息,3. 关于你要传递呼吁大家要自身保持安全意识的信...
27/07/2021

Woocommerce小贴士:

今天分享一些资讯教导大家如何在你的电商平台的结账页,加入你要的一些信息,这些信息有可能是
1. 关于你的运输所需要耗费的时间,以通知顾客,
2. 关于促销的一些信息,
3. 关于你要传递呼吁大家要自身保持安全意识的信息,
4. 关于折扣券的一些额外资讯,或等等

通过这个小贴士,你可以了解如何设定这个简单的信息,不需要安装任何插件,你只需要把此程序码复制在你的子主题里面的function.php,或是code snippet里面即可。

这个例子是比如要传达一些因为疫情方面恶化,而导致运输方面延迟的一些资讯,文字句如下:
All deliveries are expected to be delayed by 3-5 working days during this pandemic period (27/7-31/7).

若你要出现在结账页的最上方
=======================
add_action( 'woocommerce_before_checkout_form', 'custom_add_msg', 10 );

function custom_add_msg(){
echo 'Important Note: All deliveries are expected to be delayed by 3-5 working days during this pandemic period (27/7-31/7).';
}

woocommerce_before_checkout_form 也就是我们所谓的hook的地方,这个也可以用以下别的hook作为更换,以把你的信息设定在不同的位子。

若你要信息出现在结账页的BILLING DETAIL标题下方
==========================================
woocommerce_before_checkout_billing_form

若你要信息出现在结账页的BILLING DETAIL FORM下方,也就是SHIPPING DETAILS上面
======================================================================
woocommerce_after_checkout_billing_form

若你要信息出现在结账页的ORDER NOTE上面
===================================
woocommerce_before_order_notes

若你要信息出现在结账页的ORDER NOTE下面
===================================
woocommerce_after_order_notes

若你要出现信息在结账页的运费下面
=============================
woocommerce_review_order_after_shipping

若你要出现信息在结账页的付款方式上面
================================
woocommerce_review_order_before_payment

若你要出现在结账页的下单按钮上面
=============================
woocommerce_review_order_before_submit

Woocommerce小贴士:如果你是经常有使用COUPON功能的,你也许会有一个烦恼就是,不知如何设定只是指定的用户身份比如AGENT, 还是VIP才可以使用。一般要设定如此,都是需要付费,今天我教大家如何免费做些客制,就可以达成你要的需...
19/07/2021

Woocommerce小贴士:

如果你是经常有使用COUPON功能的,你也许会有一个烦恼就是,不知如何设定只是指定的用户身份比如AGENT, 还是VIP才可以使用。一般要设定如此,都是需要付费,今天我教大家如何免费做些客制,就可以达成你要的需求。

以下的例子会教您如何增加一个新的用户身份,以让您可以在COUPON SETTING里面设定所可以享有的优惠。

谨记以下的程序码需要添加在子主题里面的function.php或是code snippet里面。

// Step 1: Add New Field - User Role Restrictions (Set which user role is allowed to use coupon)
function action_woocommerce_coupon_options_usage_restriction( $coupon_get_id, $coupon ) {
woocommerce_wp_text_input( array(
'id' => 'allowed_user_role',
'label' => __( 'Allowed User Roles', 'woocommerce' ),
'placeholder' => __( 'No restrictions', 'woocommerce' ),
'description' => __( 'List of allowed user roles. Separate user roles with commas.', 'woocommerce' ),
'desc_tip' => true,
'type' => 'text',
));
}
add_action( 'woocommerce_coupon_options_usage_restriction', 'action_woocommerce_coupon_options_usage_restriction', 10, 2 );

// Step 2: Update new setting into coupon option
function action_woocommerce_coupon_options_save( $post_id, $coupon ) {
update_post_meta( $post_id, 'allowed_user_role', $_POST['allowed_user_role'] );
}
add_action( 'woocommerce_coupon_options_save', 'action_woocommerce_coupon_options_save', 10, 2 );

// Step 3: Check for validity of the coupon by user role
function filter_woocommerce_coupon_is_valid( $is_valid, $coupon, $discount ) {
// Get meta
$customer_user_role = $coupon->get_meta('allowed_user_role');

// If User Role is NOT empty
if( ! empty( $customer_user_role ) ) {
// Convert string to array
$customer_user_role = explode(', ', $customer_user_role);

// Get current user role
$user = wp_get_current_user();
$roles = ( array ) $user->roles;

// If matched, compare will be empty
$compare = array_diff( $roles, $customer_user_role );

// If NOT empty
if ( ! empty ( $compare ) ) {
$is_valid = false;
}
}

return $is_valid;
}
add_filter( 'woocommerce_coupon_is_valid', 'filter_woocommerce_coupon_is_valid', 10, 3 );

** 若你已经增加好了,刷新后台,你将会发现COUPON SETTING里面会增添多一个设定,那就是ALLOWED USER ROLES,你可以设定多个身份进去比如customer,subscriber等等,切记输入的时候不能使用大写capital letter。

Address

Kuala Lumpur

Website

Alerts

Be the first to know and let us send you an email when Alvin Woocommerce Workshop posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to Alvin Woocommerce Workshop:

Share