カート画面「発送・支払方法」ページにて、フィルターフックを活用して配送先の電話番号を任意記入にしたい場合
- このトピックには2件の返信、2人の参加者があり、最後にotanavi@gmail.comにより10年、 5ヶ月前に更新されました。
-
投稿者投稿
-
2014年6月16日 1:06 PM #70849
お世話になります。
今回、カート画面の「配送・支払方法」ページにて、配送先の電話番号を必須項目から任意記入にしたいと思い質問いたしました。
フィルターフックを活用して、以下のようにfunction.phpに記入してテストしました。/* ******************************************************** */
/* 配送先の電話番号を任意記入にする *********************************/
add_filter( ‘usces_filter_delivery_check’, ‘my_filter_delivery_check’ );
function my_filter_delivery_check($mes){
global $usces;
$mes = ”;
if ( isset($_POST[‘delivery’][‘delivery_flag’]) && $_POST[‘delivery’][‘delivery_flag’] == 1 ) {
if ( WCUtils::is_blank($_POST[“delivery”][“name1”]) )
$mes .= __(‘Name is not correct’, ‘usces’) . “<br />”;//20111116ysk 0000299
// if ( trim($_POST[“delivery”][“name3”]) == “” && USCES_JP )
// $mes .= __(‘Invalid CANNAT pretend.’, ‘usces’) . “<br />”;
if ( WCUtils::is_blank($_POST[“delivery”][“zipcode”]) )
$mes .= __(‘postal code is not correct’, ‘usces’) . “<br />”;
if ( $_POST[“delivery”][“pref”] == __(‘– Select –‘, ‘usces’) )
$mes .= __(‘enter the prefecture’, ‘usces’) . “<br />”;
if ( WCUtils::is_blank($_POST[“delivery”][“address1”]) )
$mes .= __(‘enter the city name’, ‘usces’) . “<br />”;
if ( WCUtils::is_blank($_POST[“delivery”][“address2”]) )
$mes .= __(‘enter house numbers’, ‘usces’) . “<br />”;
// if ( WCUtils::is_blank($_POST[“delivery”][“tel”]) )
// $mes .= __(‘enter phone numbers’, ‘usces’) . “<br />”;
}
if ( !isset($_POST[‘offer’][‘delivery_method’]) || (empty($_POST[‘offer’][‘delivery_method’]) && !WCUtils::is_zero($_POST[‘offer’][‘delivery_method’])) )
$mes .= __(‘chose one from delivery method.’, ‘usces’) . “<br />”;
if ( !isset($_POST[‘offer’][‘payment_name’]) ){
$mes .= __(‘chose one from payment options.’, ‘usces’) . “<br />”;
}else{
$payments = $this->getPayments($_POST[‘offer’][‘payment_name’]);
if(‘COD’ == $payments[‘settlement’]){
$total_items_price = $this->get_total_price();
$tax = $this->getTax( $total_items_price );
$total_items_price = $total_items_price + $tax;
$cod_limit_amount = ( isset($this->options[‘cod_limit_amount’]) && 0 < (int)$this->options[‘cod_limit_amount’] ) ? $this->options[‘cod_limit_amount’] : 0;
if( 0 < $cod_limit_amount && $total_items_price > $cod_limit_amount )
$mes .= sprintf(__(‘A total products amount of money surpasses the upper limit(%s) that I can purchase in C.O.D.’, ‘usces’), usces_crform($this->options[‘cod_limit_amount’], true, false, ‘return’)) . “<br />”;
}
}
//20101119ysk start
if(isset($_POST[‘offer’][‘delivery_method’]) and isset($_POST[‘offer’][‘payment_name’])) {
$d_method_index = $this->get_delivery_method_index((int)$_POST[‘offer’][‘delivery_method’]);
if($this->options[‘delivery_method’][$d_method_index][‘nocod’] == 1) {
$payments = $this->getPayments($_POST[‘offer’][‘payment_name’]);
if(‘COD’ == $payments[‘settlement’])
$mes .= __(‘COD is not available.’, ‘usces’) . “<br />”;
}
}
//20101119ysk end
//20110317ysk start
if(isset($_POST[‘offer’][‘delivery_method’])) {
$d_method_index = $this->get_delivery_method_index((int)$_POST[‘offer’][‘delivery_method’]);
$country = $_SESSION[‘usces_entry’][“delivery”][“country”];
$local_country = usces_get_base_country();
if($country == $local_country) {
if($this->options[‘delivery_method’][$d_method_index][‘intl’] == 1) {
$mes .= __(‘Delivery method is incorrect. Can not specify an international flight.’, ‘usces’) . “<br />”;
}
} else {
if( WCUtils::is_zero($this->options[‘delivery_method’][$d_method_index][‘intl’]) ) {
$mes .= __(‘Delivery method is incorrect. Specify the international flights.’, ‘usces’) . “<br />”;
}
}
}
//20110317ysk endreturn $mes;
}しかし、「Fatal error: Using $this when not in object context in /~(自分のサイトのフォルダ)~/wp-content/themes/welcart_default/functions.php on line 222」というエラーがでてしまい、カート画面「内容確認」ページに行きません。
ちなみに222行目は、
「$payments = $this->getPayments($_POST[‘offer’][‘payment_name’]);」
このようになっています。どうすればエラーが解決できるのか、どうかご教授いただければ幸いです。
——————————————-
WordPress のバージョン:WordPress 3.9.1
Welcart のバージョン:v1.4.2.1406022
ご利用のテーマ: Welcart Default Theme
症状を確認したブラウザ:
サーバー(会社名、サービス名): ローカル環境
SSLの利用: なし
WordPress のパーマリンク設定:
——————————————–2014年6月17日 1:08 PM #70863nanbuキーマスターこんにちは。
内容は検証していませんが、$this-> は全て $usces-> となります。
2014年6月17日 10:45 PM #70878nanbu様
ご回答ありがとうございます!
「$this」の部分を「$usces」にしてテストしたところ、
期待のとおり「内容確認」ページが表示されました!この度は、お返事誠にありがとうございました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。