私はフックとアクションについて読みましたが、do_action('some_hook')
を見たときそれはテーマのfunctions.php
のどこかにadd_action('some_hook', function() {...});
またはsome_hook()
が存在することを意味します。
しかし、それはなんですか。 :
woocommerce/includes/class-wc-checkout.php line#943から:
public function process_checkout() {
try {
/////////////
do_action( 'woocommerce_before_checkout_process' ); <----!!!
if ( WC()->cart->is_empty() ) {
throw new Exception( sprintf( __( 'Sorry, your session has expired. <a href="%s" class="wc-backward">Return to shop</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'shop' ) ) ) );
}
do_action( 'woocommerce_checkout_process' ); <-----!!!
ファイルのどこにもwoocommerce_checkout_process
とwoocommerce_before_checkout_process
がありません。彼らは何をしますか?
アクションフックが使われずに提供されることは可能です、それはここで起こっていることです。
woocommerce_before_checkout_process
とwoocommerce_checkout_process
はWooCommerceによって提供されるフックですが、WooCommerceそれ自体はこれらのフックのどちらにもコールバック関数を付けません。それぞれのフックがトリガーされたときにプラグインとテーマがコードを実行できるようにするために提供されています。
woocommerce_checkout_process
フックに関数を添付したい場合は、あなたのテーマやプラグインに次のコードを追加します。
add_action( 'woocommerce_checkout_process', 'wpse_woocommerce_checkout_process' );
function wpse_woocommerce_checkout_process() {
// Do something...
}
このコードは、WooCommerceのdo_action( 'woocommerce_checkout_process' );
を呼び出す行が実行されたときに実行されます。