函式過不去
沒辦法,只好從SQL資料庫抓了
global $wpdb;
$order_id=$wpdb->get_var( "SELECT order_id FROM {$wpdb->prefix}woocommerce_order_items ORDER BY order_id DESC LIMIT 1" );
部落格已搬家
EMAIL請寄到以下地址:chaneswin [at] chaneswin.idv.tw
目前分類:Wordpress學步車 (9)
- Mar 17 Tue 2015 16:13
抓取woocommerce最新訂單編號
- Nov 04 Tue 2014 09:58
WordPress外掛修改筆記(1)-元素擺放位置
記錄使用 WooCommerce Delivery Slots 的問題
這次的要求是把外掛在結帳頁面的顯示位置改掉
雖然我是在改Slots 這個外掛,不過元素位置的改法應該在很多外掛上道理都是相同的
也就是使用Hook,這個名詞直譯成鉤子,我總算多多少少可以體會了
利用檢查元素找到 id="jckwds_fields"搜尋其所在的PHP頁面以及程式碼位置
( id="你要換位置的元素",不要傻傻照抄哦!)
再由包住它的函式 wds_field_output找到
// Checkout Fields
add_action( 'woocommerce_after_order_notes', array( &$this, 'wds_field_output' ) );
嗯!藉此機會了解一下 add_action 與 hook,
就簡單理解成 add_action 與 do_action要成對使用,
add_action 只是添加動作,do_action才是實際做動作,
這不難理解與記憶
因此接下來就是用 woocommerce_after_order_notes 來搜尋plugins資料夾裡面的全部檔案
看看哪裡有do_action
這才找到 woocommerce 外掛裡面的 do_ation
(plugins\woocommerce\templates\checkout\form-checkout.php)
說起來也蠻妙的,在 Slots 外掛添加動作,卻在woocommerce 外掛做動作
懂了以後覺得沒什麼,不懂的時候應該會頭很大吧
裡面有幾個常用位置可以放,譬如
woocommerce_before_checkout_form
woocommerce_checkout_before_customer_details
woocommerce_checkout_after_customer_details(後來是用這個先頂著)
一直到...
woocommerce_after_checkout_form
因此只要把 wp-content\plugins\jck_woo_deliveryslots\jck_woo_deliveryslots.php 裡面
// Checkout Fields
add_action( 'woocommerce_after_order_notes', array( &$this, 'wds_field_output' ) );
裡面的woocommerce_after_order_notes改掉成要對應的hook就可以了
所以我改成這樣
add_action( 'woocommerce_checkout_after_customer_details', array( &$this, 'wds_field_output' ) );
雖然可惜,事實上我要放的正好都不是這些常用位置...
但常用位置如何放置還是記錄一下
而我就繼續用訂單表格中我所要的運費位置 class="shipping" 去找我的答案,
不能用hook以後,有兩種思維方式,
一種是變更woocommerce裡面可以加hook的地方或直接在 class="shipping"裡面用html動手腳
第二種是變更Slots外掛,
想當然,既然是為了處理這個外掛,用第二種才比較合理
雖然不能輕鬆用hook去改變,但當初輸出html內容是使用echo,
於是我回到輸出內容的函式wds_field_output,
寫在輸出的html之前,利用 jQuery的append把位置調動了
/*更改位置 BEGIN*/
echo '
';
echo '
';
/*更改位置 END*/
當然如果原本就引入了jQuery的話不用加第一行,不過我的沒抓到jQuery應有的效果,只好多加上去了
卻造成.原本「配送到不同的地址?」控制顯示隱藏的核取方塊失效了
其js行為不起效果,於是我再搜尋「jquery」檢查一遍原始碼,
看到 wp-includes/js/jquery/jquery.js?ver=1.11.0
發覺WordPress裡面引用的應該是 http://code.jquery.com/jquery-1.11.0.min.js
1.11.0這個版本沒有我要的效果,我用的是 http://code.jquery.com/jquery-1.5.min.js
我換掉jQuery,不過...依然失效,
最後我把所有檔案還原回去...還是失效
唯獨漏掉了...jquery.js
討論時說了,先換回去原本版本吧
於是把版本換回去...
原來...WordPress 的 jQuery不能亂換版本...
亂換版本會出事,至少Woocommerce 會出事
原本想說同理可以做隱藏顯示,我的方法是加上onCLick動作
配合
但是
- 在Woocommerce 裡面
不想動 Woocommerce 所以作罷
另外一個問題是,其實舊版的jQuery也無法讓我做到這個效果
至此,在js方面先打住
參考資料:
WordPress的Hook機制與原理
- Oct 16 Thu 2014 11:01
Wordpress 運送日期的外掛
關於配合 Woocommerce增加運送日期的外掛很多
譬如 DeMomentSomTres Woocommerce Delivery (我還沒有找到他的效果出現在哪?)
Order Delivery Date for Woocommerce (很單純在結帳頁面增加配送日期的選擇欄位,訂單內是用自訂欄位達成)
這兩個都直接在 WordPress裡面搜尋外掛就可以找到了
至於下面這兩個外掛則是要付費的
Woocommerce Delivery Time Picker for Shipping
WooCommerce Delivery Slots
外賣外送與店內自取,在思考時間掌握方面是有一些差別,譬如外送的也許有限定時段,像人手不足的這些時段其實就不可能外送,而到店自取只要東西做好了放在那隨時要來拿東西都可以。此反映到製作網站的考量,當運送方式選為外送,就必須限定特定時間點(餐廳訂位也是),這兩個外掛比起剛才的免費外掛,多的就是時間區段,第一個讓客人可以選一段時間,我個人認為這很適合用在貨運,讓客人選擇方便在家收取物品的時間;至於第二個 Slots,在外掛檔案有說明可以用於餐廳訂位。比起第一個外掛器能夠選擇一段時間,這第二個外掛Slots則可以選擇多個時間段 。
Slots這外掛,可以在網頁放上訂位表,登錄後的客人可以先「臨時」訂下一個時段再來填訂單結帳(可設定有效時間),如果這「臨時」訂滿了,那就只剩下有按下臨時預訂的人在結賬時可以選這個時段,沒有先使用臨時預訂的帳號在結帳時就看不到這這個時段,也就選不到了的人,這個外掛是支援多人在線,才不至於功能造成混亂。後台的Currently Reserved可以看見臨時預訂人數,Upcoming Deliveries也可以看到已經實際下訂的單子。
- Sep 30 Tue 2014 16:24
解決woocommerce radio button的重疊問題
在WordPress親愛的預設Theme 2014看不見的問題
就是radio button(核取按鈕)的重疊
合理推斷原因是該theme的CSS在那些 li 的優先層級比較高
但對於一些minimal的主題可就要自己到woocommerce 外掛裡面的CSS改了
- Sep 27 Sat 2014 19:29
Wordpress 免外掛預約發文相關注意事項
- 文章/新增文章
- 在右側的【立刻發表】右邊按下【編輯】
- 變更時間日期後按下【確定】,原本的發表就會變成排程
- 按下【排程】
如果排程失敗,是因為wordpress默認發布文章的時間太短
可更改wp-includes資料夾底下的cron.php文件。
搜尋”timeout”,將代碼後面的數值0.01改成10.00延長默認發布時間
P.S.如果pixnet要預約發文的話直接在發表時改上面的文章日期,未來的文章在文章列表的日期會是紅色
參考文章:
wordpress內建功能-文章定時(預約)發布失敗該怎麼處理(一)
- Sep 26 Fri 2014 14:17
Wordpress 好用外掛AG Custom Admin變更後台界面
- AG Custom Admin:
安裝後會出現在工具選單底下,
變更後台LOGIN與ADMIN,比起只能變更選單的Admin Menu Editor當然有更多選項,
由於是免費的,在多站台使用上立刻把White Label Branding for WordPress打下去,
儘管在LOGIN部分的變化沒有White Label Branding for WordPress多,但常見而中規中矩的調整已經足夠
- Jan 17 Fri 2014 07:20
Wordpress Mu與外掛、佈景安裝,錯誤解決筆記
1. 下載wordpress檔案(到這裡載)解壓縮後上傳
2. 安裝時出現:Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes) in ...
因此改用上傳config,確認裡面包含
define('WP_MEMORY_LIMIT', '64M');//解決memory的問題
define('WP_ALLOW_MULTISITE', true);//允許multisite
遇到快取問題則define('WP_CACHE', true); //設成true
P.S.另外一個解法是說memory的問題要到/wp-includes/default-constants.php修改
搜尋【// set memory limits】大約在18~25行
if ( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT', '128M');
} else {
define('WP_MEMORY_LIMIT', '64M');
}
}
3. 因為不能改php.ini,透過上傳.htaccess解決記憶體問題,第一行是:php_value memory_limit 64M
【更新】如果加上這行字以後跑出500 Internal Server Error,很可能你的虛擬主機是可以改 php.ini 的
若 ini 檔只放在wordpress的安裝目錄還不行,就再複製一個 ini 到wp-admin目錄
我後來租用Webhosting World的虛擬主機,找線上即時客服解決的,底下是參考內容,用了 ini 的話上面步驟都可以不用做...
disable_functions =
safe_mode = Off
memory_limit = 256M
output_buffering = Off
upload_max_filesize = 200M
post_max_size = 200M
magic_quotes_gpc = Off
display_errors = Off
date.timezone="America/New_York"
open_basedir = Off
allow_url_fopen = On
4. 應該能順利安裝wordpress了,安裝完畢還不是Multisite
5. 啓用Mu功能;工具/啓用網誌網路,依照指示備份後修改config.php以及.htaccess檔案
6. 安裝並啟用外掛:網誌網路管理/外掛/網誌網路啟用
7. 安裝並啟用佈景theme:網誌網路管理/外觀/佈景主題/網誌網路啟用
8. 外掛/網誌網路啓用
9. 新增網誌:網誌網路管理/控制台/建立一個新網誌
10. 連不到新網誌:從cpanel→Domains /simple DNS Zone Editor→新增A記錄
==================================
20140923更新
安裝 WooCommerce 外掛後無法啟用
依舊找了Webhosting World的線上客服
後來發現他在我的安裝目錄加上 php.ini
內容如下:
safe_mode = Off
memory_limit = 128M
display_errors = On
disable_functions =
==================================
其它問題:
**
因為WP的設備安裝目錄是www目錄,如果沒有www目錄,就無法安裝
只要在wp-config.php檔案加入以下文字即可(要加在最下面喔):
意思如下:
FTP_BASE:為你的 Worpress 安裝的根目錄。
FTP_CONTENT_DIR:為你的 Worpress 內容安裝的目錄。
FTP-PLUNGIN_DIR:為你的 Worpress 外掛安裝的根目錄。
FTP_THEMES_DIR:為你的 Worpress 主題安裝的根目錄。
FS_METHOD:為安裝的方法**/
define('FTP_BASE', 'public_html');
define('FTP_CONTENT_DIR', 'public_html/wp-content');
define('FTP_PLUGIN_DIR', 'public_html/wp-content/plugins/');
define('FTP_THEMES_DIR', 'public_html/wp-content/themes/');
define('FS_METHOD', 'direct');
引用自:http://blogger-script-study.blogspot.com/2010/08/wordpress-content-wp-content.html
關於網址:
【超省錢架站法7】如何設定WordPress的固定網址? by 香腸炒魷魚
建議先把 htaccess 權限設定為777後再去改 Permalink ,改完後再設定回 644 。嗯..看起來很有道理,先記住!
如何開啟顯示FTP隱藏檔?(.htaccess)也是需要知道的
- Jan 11 Sat 2014 17:14
更改wordpress網址前綴blog
把blog改成store
但是非常不建議這麼做....
誰知道要用外掛時會發生什麼事
- Aug 31 Sat 2013 15:16
[碎碎念] 無名要關啦...