回答編集履歴

1

コメントに対しても追記

2018/09/19 12:32

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -45,3 +45,81 @@
45
45
  (参考) #追加前
46
46
 
47
47
  ![追加前](5f434b066ec8045d1fb9ed3e33c56c1d.png)
48
+
49
+
50
+
51
+ ----
52
+
53
+ (コメントに対しての追記 2018.09.19 21:06)
54
+
55
+
56
+
57
+ > function unset_different_shipping_address(){
58
+
59
+ > if (wc_商品1_is_in_the_cart()) {
60
+
61
+ > add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');
62
+
63
+ > }
64
+
65
+ > }
66
+
67
+
68
+
69
+ functions.php に 上記のプログラムを記載したとと書かれていますが、これは、function を定義しただけで実行されたわけではありません。
70
+
71
+
72
+
73
+ function で定義したものは、「テーマ内で関数を呼び出して実行する」か「フックを使って実行する」必要があります。
74
+
75
+
76
+
77
+ 今回は、アクションフックを使うほうになります。
78
+
79
+ add_action を使って、定義したファンクションをどのタイミングで実行させるのかを指定します。
80
+
81
+
82
+
83
+ ドキュメントを読んでもらえば分かる通り、アクションフックはいろいろあるのですが、プラグインの初期化は、通常 init で行われることが多いので、プラグインの動作変更であれば、init か その次の wp_loaded あたりになると思います。
84
+
85
+ 今回は、 init の一番最後の方で実行されるようにしたいと思いますので、優先順位を 99 にして下記のように記載します。
86
+
87
+ ```
88
+
89
+ add_action( 'init', 'unset_different_shipping_address', 99 );
90
+
91
+ ```
92
+
93
+
94
+
95
+ 最終的には、上記のプログラムに`add_action` を1行追加して、
96
+
97
+ ```
98
+
99
+ function unset_different_shipping_address(){
100
+
101
+ if (wc_商品1_is_in_the_cart()) {
102
+
103
+ add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');
104
+
105
+ }
106
+
107
+ }
108
+
109
+ add_action( 'init', 'unset_different_shipping_address', 99 );
110
+
111
+ ```
112
+
113
+ の内容を functions.php に記載します。
114
+
115
+
116
+
117
+
118
+
119
+ 参考情報
120
+
121
+ * [関数リファレンス/add_action](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_action)
122
+
123
+ * [プラグイン_API/アクションフック一覧](https://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7)
124
+
125
+ * [Action Reference/init](https://codex.wordpress.org/Plugin_API/Action_Reference/init)