質問編集履歴

3 補足のコードを追加

Biocerveau

Biocerveau score 17

2019/05/15 18:10  投稿

条件分岐if文がうまく動作しない
Wordpressを使用してサイトを管理しています。
決済ページにWoocommerceを使用しておりまして、
お客さんが受け取る注文確認メールに返金条件(各商品ごとにそれぞれ異なる)が表示されるように設定したく、
以下のようなコードを記述しましたが、
```php
add_action('woocommerce_email_order_meta', 'add_cancel_condition_to_email_order_meta', 10, 4);
function add_cancel_condition_to_email_order_meta() {
   if (wc_product1_is_in_the_cart()) {
       echo 'Refundable within 10 days.';
   } elseif (wc_product2_is_in_the_cart()) {
       echo 'Refundable within 30 days.';
   } else {
       echo 'Non refundable.';
   }
}
```
動作確認のため、Product2を注文・確定すると、確認メールには「Non refundable.」と表示されてしまいます。
### 補足
上記のプログラムの直前に、
```php
add_action('woocommerce_email_order_meta', 'my_custom_checkout_field_order_meta_keys', 10, 4);
function my_custom_checkout_field_order_meta_keys($order)
{
   .....
}
```
という記述があります。
 
また、wc_product1_is_in_the_cart()の定義は以下の通りです。  
```php  
function wc_product1_is_in_the_cart()  
{  
   // Add your special product IDs here  
   $ids = array(  
       '6231',  
       '6277',  
       '6233',  
       '6278',  
       '6234',  
   );;  
 
   // Products currently in the cart  
   $cart_ids = array();  
 
   // Find each product in the cart and add it to the $cart_ids array  
   foreach (WC()->cart->get_cart() as $cart_item_key => $values) {  
       $cart_product = $values['data'];  
       $cart_ids[]  = $cart_product->get_id();  
   }  
 
   // If one of the special products are in the cart, return true.  
   if (!empty(array_intersect($ids, $cart_ids))) {  
       return true;  
   } else {  
       return false;  
   }  
}  
```  
 
他に必要な情報がありましたら、追加で記述いたします。
どなたかお力を貸していただければ幸いです。
  • PHP

    31212 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    12204 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

2 内容の訂正

Biocerveau

Biocerveau score 17

2019/05/13 22:21  投稿

条件分岐if文がうまく動作しない
Wordpressを使用してサイトを管理しています。
決済ページにWoocommerceを使用しておりまして、
お客さんが受け取る注文確認メールに返金条件(各商品ごとにそれぞれ異なる)が表示されるように設定したく、
以下のようなコードを記述しましたが、
```php
add_action('woocommerce_email_order_meta', 'add_cancel_condition_to_email_order_meta', 10, 4);
function add_cancel_condition_to_email_order_meta() {
   if (wc_product1_is_in_the_cart()) {
       echo 'Refundable within 10 days.';
   } elseif (wc_product2_is_in_the_cart()) {
       echo 'Refundable within 30 days.';
   } else {
       echo 'Non refundable.';
   }
}
```
動作確認のため、Product2を注文・確定すると、確認メールには「Refundable within 10 days.」と表示されてしまいます。
動作確認のため、Product2を注文・確定すると、確認メールには「Non refundable.」と表示されてしまいます。
### 補足
上記のプログラムの直前に、
```php
add_action('woocommerce_email_order_meta', 'my_custom_checkout_field_order_meta_keys', 10, 4);
function my_custom_checkout_field_order_meta_keys($order)
{
   .....
}
```
という記述があります。
他に必要な情報がありましたら、追加で記述いたします。
どなたかお力を貸していただければ幸いです。
  • PHP

    31212 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    12204 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

1 タグの追加

Biocerveau

Biocerveau score 17

2019/05/13 21:25  投稿

条件分岐if文がうまく動作しない
Wordpressを使用してサイトを管理しています。
決済ページにWoocommerceを使用しておりまして、
お客さんが受け取る注文確認メールに返金条件(各商品ごとにそれぞれ異なる)が表示されるように設定したく、
以下のようなコードを記述しましたが、
```php
add_action('woocommerce_email_order_meta', 'add_cancel_condition_to_email_order_meta', 10, 4);
function add_cancel_condition_to_email_order_meta() {
if (wc_product1_is_in_the_cart()) {
echo 'Refundable within 10 days.';
} elseif (wc_product2_is_in_the_cart()) {
echo 'Refundable within 30 days.';
} else {
echo 'Non refundable.';
}
}
```
動作確認のため、Product2を注文・確定すると、確認メールには「Refundable within 10 days.」と表示されてしまいます。
### 補足
上記のプログラムの直前に、
```php
add_action('woocommerce_email_order_meta', 'my_custom_checkout_field_order_meta_keys', 10, 4);
function my_custom_checkout_field_order_meta_keys($order)
{
.....
}
```
という記述があります。
他に必要な情報がありましたら、追加で記述いたします。
どなたかお力を貸していただければ幸いです。
  • PHP

    31212 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    12204 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る