/**
* Basic details of logged in user
*
* @return array current user data.
*
*/
public function get_clients_details() {
return [
'ip' => \WC_Geolocation::get_ip_address(),
'agent' => wc_get_user_agent(),
'referer' => wc_get_raw_referer(),
];
}
code
WooCommerce Subscriptions 判斷購物車是否包含訂閱型商品
WC_Subscriptions_Cart::cart_contains_subscription()
woocommerce help tip
<span class="woocommerce-help-tip" title="'. __( 'If order creation failed, you could create order manually.') .'"></span>
WooCommerce Admin Settings Custom Attributes
To set custom attributes, you could use custom_attributes as array key.
This is an example taken from WooCommerce.
You can see now the input field has a new attribute name ‘multiple’ and with the value ‘multiple’
[WooCommerce] – 如何一次清空商品圖庫 (Product Gallery)
update_post_meta( '248304', '_product_image_gallery', '');
VS Code Intelephense 無法辨識 WordPress 函式
PHP Intelephense 是 VS Code 中相當熱門的一個擴充,讓 VS Code 可以更接近 PHPStorm 具有 IDE (Integrated Development Environment) 的功能。
當在開發 WordPress 的時候,可能會遇到 VS Code 無法辨識 WordPress 函式的狀況。
你可以開啟設定,然然找到 Intelephense: Stubs 這個設定,將 WordPress 加入,重新啟動 VS Code 就可以了。
PHP 在瀏覽器中顯示 PDF
如果要直接在瀏覽器中顯示 PDF,請把 Content-Disposition 改成 inline。
如果要下載 PDF,則將 Content-Disposition 改為 attachment
[WooCommerce] 如何移除付款方式 icon
許多使用的金流外掛都會額外顯示該付款方式的 icon,不過有些外掛並沒有提供關閉的功能。不過還是可以透過 WooCommerce 內建的 filter 來移除 icon。
例如我們想要移除 Ry WooCommerce Tools 的綠界超商代碼付款,可以使用 woocommerce_gateway_icon 這個 filter。這個 filter 有兩個參數,一個是 $icon,是原本 icon 的網址,另一個是 $id,代表著付款方式的 id,每一個付款方式的 id 皆不同。在下面的例子中,判斷當 $id 等於 ry_ecpay_cvs 時,就回傳空字串,這樣就不會顯示付款方式的 icon 了。
function lwd_remove_ecpay_icon( $icon, $id ) {
if ( $id === 'ry_ecpay_cvs' ){
return '';
} else {
return $icon;
}
}
add_filter( 'woocommerce_gateway_icon', 'lwd_remove_ecpay_icon', 10, 2 );
至於要如何知道付款方式的 id 呢?首先你可以檢視外掛的原始程式碼,每一個付款方式的實作都必須要指定 id ,這個 id 是不能重複的。你可以在 ry-woocommerce-tools/woocommerce/gateways/ecpay/includes/ecpay-gateway-cvs.php 中找到 $this->id,這個 id 就是該付款方式的 id。
若你不知道如何檢視程式碼,也可以透過瀏覽器的開發者工具來檢視網頁的原始碼。在結帳頁面開啟 chrome 的開發者工具,並使用檢視工具來檢視元件,點擊檢視工具後,點擊你要檢視的付款方式,底下就會跳到該付款方式的原始碼。你可以看到每一個付款方式都會帶有一個 CSS class,例如 payment_method_ry_ecpay_cvs,其中ry_ecpay_cvs 就是該付款方式的 id。
git 如何修改最近一次的 commit message
如果你想要修改最近一次的 commit message,可以透過 –amend 指令來修改。
未 push 的修正
git commit --amend -m "新的訊息"
修正完後再 push 即可
已 push 的修正
若你的修正之前已經 push 到遠端的存放庫,則在 push 時要使用 –force 指令
git push --force origin master
如何在 WP 外部呼叫 WP 函式
有時候為了快速測試一些功能,會寫一些簡單的 PHP 來測試功能,如果你要呼叫 WP 的函示,就必須在佈景主題或是外掛中攥寫相關的程式碼,但這樣相當的麻煩。
如果你只是希望做一些簡單的測試,你可以在網站的根目錄下,建立一個 PHP 檔案,例如 test.php
然後在最前面加上以下程式碼:
<?php
define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
這樣就可以直接呼叫 WP 的函式了!
<?php
define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
$current_user = wp_get_current_user();