發佈日期:

在 cPanel 操作網站的搬遷與轉換

在 cPanel 更換網站資料夾,但是保持網址不變:因為以前不懂,以為只能安裝在 public_html ,於是將不同網站架在有父子關係的子目錄,造成權限管理問題。解決方法如下:

  • 在 cpanel 檔案管理,複製好新的資料夾
  • 新資料夾裡面的 .htaccess 或 config 檔案要找找,有舊的路徑要改嗎?
  • 在 cpanel 網域設定,將網域指向新的資料夾
  • 將舊的資料夾改名,觀察哪些網頁出問題,多半是快取,需要去新資料夾刪除快取檔
  • 最後檢查一下 cPanel 的 application ,應該會發現網站的路徑已經自動更新了。不過這也意味著還原之前的備份要注意路徑問題。不知道會不會自動還原到新位置,當然,還原後還是需要改設定檔。

Joomla 文章與分類搬到 WordPress 可參考: https://www.hostinger.com/tutorials/how-to-migrate-from-joomla-to-wordpress (同一個主機內搬遷,通常不同虛擬主機資料庫應該沒辦法外聯)

在 cPanel 移除網站步驟:

  • cPanel application 先移除網站,注意這不會刪除檔案,而且備份都還在
  • 移除該網域 SSL
  • 移除該網域
  • 用 cPanel 檔案管理刪除該資料夾
發佈日期:

WordPress 外掛筆記

試過許多外掛,儘管許多已經用不到了!

卻不敢隨便移除,改在這邊紀錄後,就能放心移除。

Better Search Replace 用來改網址,中文不行

Custom Login 客製化後台的登入畫面

Table Rate for WooCommerce by Flexible Shipping 自訂出貨方式,因許多細節須收費,暫由 AGP Weight Shipping 取代

WordPress Plugin Header and Footer Scripts – 自訂程式碼置入外掛程式: 好像還沒試過,多年一直停用在列表

Min and Max Purchase for WooCommerce: 自訂購買金額的上下限,可惜要針對某類產品的專業版需付費70美元

WP Content Copy Protection & No Right Click: 防止網頁文字被複製,很久沒用,記得曾經失效過

WP-Optimize – Cache, Clean, Compress. : 壓縮圖片,還有其他許多功能加速網站,沒時間好好測試

WordPress Plugin WP Downgrade – 版本回溯外掛程式 : 發現升級有問題時,可以指定版本降級,滿神奇的

 

發佈日期:

訂單正在 “等待付款”,WooCommerce不會發送電子郵件的問題

訂單狀態顯示「待付款」(On-Hold),WooCommerce不會發送電子郵件,導致少上線的店長會驚訝地看到上個月有個訂單正在 “等待付款”,其實是信用卡或 Paypal 付款頁沒完成就離開了!

這不只是嚇到店長而已,商品庫存也會扣著,可能導致庫存量過低的假象。

WooCommerce 的等待付款其實沒意義,因為付款出問題,購物車也無法回復,客戶只能重新買一次…這應該在新版有改進,或者有外掛可用?

總之,目前最快的解決辦法是用”保留庫存” (在 Woocommerce 的設定>商品>庫存),設定幾分鐘後,”等待付款”會自動變成”取消”,取消的訂單有通知信。

WP Crontrol 外掛可以看到這樣的排程,方便除錯:

WP Crontrol

可惜的是,這樣自動取消的訂單,還是沒有通知信…XD

只好自己加程式,可參考官方的樣板,得知在哪邊加比較方便:

https://woocommerce.github.io/code-reference/hooks/hooks.html

找 unpaid 這個字,找到: woocommerce_cancel_unpaid_orders()

[code]add_filter('woocommerce_cancel_unpaid_order','woocommerce_cancel_unpaid_order_WCC',20,2);
function woocommerce_cancel_unpaid_order_WCC( $ret, $order ){
    WC()->mailer()->get_emails()['WC_Email_Cancelled_Order']->trigger( $order->get_id() );
    
    return $ret;
}[/code]
如果 $ret 是 False ,那就不會取消,可以用來重複測試寄信程式,只是,需要去設定幾分鐘那邊重刷網頁,以便設定新的排程。

發佈日期:

新的網頁空間 PHP7.4 遇到的問題

新的網頁空間需要調整:

  • PHP 7.2 切換到 PHP 7.4
  • PHP 7.4 Default option 也需要跟著調,只要查看 WordPress 的網站狀態的建議就知道哪些模組需要去打勾
  • PHP錯誤訊息: PHP Deprecated: Function create_function() is deprecated in /home/XXXXX/public_html/wp-content/themes/YYYYY/cherry-framework/setup.php on line 14,這個錯誤將導致後台在外觀的設定錯亂,就算是程式修正也無法復原。該程式的 create_function… 需換成下列程式,至於如何修復後台外觀自訂,將在下一點說明
[code]return function () {         
    global $chery_core_version;
    
    $path = trailingslashit( dirname( __FILE__ ) ) . 'cherry-core.php';
    
    $data = get_file_data( $path, array(
        'version' => 'Version'
    ) );
    
    if ( isset( $data['version'] ) ) {                 
         $version = $data['version'];
    }         
    
    $old_versions = null;
    
    if ( null !== $chery_core_version ) {                 
         $old_versions = array_keys( $chery_core_version );         
    }
    
    if ( is_array( $old_versions ) && isset( $old_versions[0] ) ) {                 
         $compare = version_compare( $old_versions[0], $version,'<' );
        
         if ( $compare ) {                         
             $chery_core_version = array();
             $chery_core_version[ $version ] = $path;                 
         }         
    } else {
         $chery_core_version = array();
         $chery_core_version[ $version ] = $path;         
} }; [/code]
  • 修復後台Theme的外觀自訂:
  1. switch to another default theme (I used twenty nineteen) and re-assign a primary menu.
  2. jump into the db and search in the options for ‘theme_mods_’ there should be one for each theme in there. One is your broken theme and you should fine the other one twentynineteen.
  3. copy the options value from twenty nineteen and set it for the value for your broken theme. Then switch it back and assign the primary menu again.

原理大概就是去複製正常運作過的 Theme 所儲存的資料,然後再回來重新設定一次 Theme 的自訂,當然,這些操作的前提是,程式需要先修復,不然連其他 Theme 的資料都被毀了!

  • PHP 7.4 錯誤訊息: Trying to access array offset on value of type null… 導致 WordPress 5.3.8 的媒體上傳功能 (file.php) 故障,這個問題有 PHP 7.4 的修正更新,但是虛擬主機就沒這個彈性了,而且: Previous versions of PHP may have been less strict on such mistakes and silently swallowed the error / notice while 7.4 does not do this anymore. 所以這是 PHP 7.4 變得比較嚴謹所導致,不該讓 PHP 走回頭路,最好能改網站程式,這樣只好期待 WordPress 更新了! 暫時降版到 PHP 7.3 了

 

發佈日期: 1 則留言

XAMPP PHP7.4.7 Server 在分享器環境加 Let’s Encrypt SSL

完成 Localhost 的安裝後,可進一步改成正式的網址 https://www.網域名稱

在 c:\xampp\apache\conf\extra\httpd-ssl.conf

找到 <VirtualHost _default_:443> 這個區段

DocumentRoot 網站的檔案路徑
ServerName 網域名:443
ServerAdmin 管理者信箱

往下找,放入申請到的三個檔 (到 http://sslforfree.com/ 申請),假設都放在 c:\xampp\apache\conf\ssl

SSLCertificateFile “conf/ssl/certificate.crt”

SSLCertificateKeyFile “conf/ssl/private.key”

SSLCACertificateFile “${SRVROOT}/conf/ssl/ca_bundle.crt”

上面的 ${SRVROOT}/ 只是抄原有的寫法,應該可以去掉

 

設定 WAN 的 虛擬伺服器

如果網路環境是分享器,須設定 WAN 的 虛擬伺服器,以開通 80,443 port,指向 Localhost 的 IP

 

發佈日期:

Ubuntu 18 安裝測試 PHP 7 環境

指令不容易記,所以將安裝 Ubuntu 過程紀錄一下

安裝為繁體中文版 ubuntu

安裝中文輸入法:新酷音輸入法

在終端機執行:sudo apt install ibus-chewing

須重新登入才有效,然後在〝地區與語言〞增加輸入法「chinese(chewing)」

忘記 root 密碼

登入一般帳號後,執行:sudo passwd root

建立捷徑在桌面
第一次可能需要安裝,訊息中會提示安裝指令
gnome-desktop-item-edit --create-new ~/桌面/
有趣的是,上述指令作成捷徑是無效的,執行時只看到畫面稍微抖一下


待續…

發佈日期:

WordPress theme valentia 開啟側欄 (Sidebar),在 WooCommerce 產品頁 (single-product)

WordPress theme valentia 開啟側欄 (Sidebar),在 WooCommerce 產品頁 (single-product)

須改兩個程式:

themes/valentia/inc/context.php: 找下列函式

function valentia_get_layout_classes: 關閉下列四行程式

if ( function_exists(‘is_product’) && is_product() ) {

    $sidebar_position = ‘fullwidth’;

    $sidebar_width = 0;

}

themes/valentia/sidebar.php: 關閉下列三行程式

if ( function_exists(‘is_product’) && is_product() ) {
    return;
}