我正在尝试在购物车按钮后显示内容但钩子无效。 我有另一个钩子在结帐页面正常工作,如admin_notices,woocommerce_api,thankyou ...但我不能在产品页面中使用钩子。我正在编写一个日志来跟踪钩子是否正在使用该函数但没有写入任何内容,此外我正在编写模板文件来检查钩子是否被调用
在我的课程代码下面:
class WC_MyGw_Gateway extends WC_Payment_Gateway
{
$this->settings['show_content_on_product_page'] = false; // true
....
public function __construct()
{
add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
add_action( 'admin_notices', array( $this, 'check_fields' ) );
add_action( 'woocommerce_after_add_to_cart_button', array( $this, 'add_content_afteraddtocartbutton'), 10, 0 );
add_action( 'woocommerce_after_add_to_cart_form', array( $this, 'add_content_afteraddtocartform'), 10, 0 );
....
}
public function add_content_afteraddtocartform() {
file_put_contents('/tmp/woocommerce.txt', "\n ".__METHOD__, FILE_APPEND);
if ($this->show_content_on_product_page)
echo '<div class="second_content">add_content_afteraddtocartform</div>';
}
public function add_content_afteraddtocartbutton() {
file_put_contents('/tmp/woocommerce.txt', "\n ".__METHOD__, FILE_APPEND);
if ($this->show_content_on_product_page)
echo '<div class="second_content">add_content_afteraddtocartbutton here!</div>';
}
在我的模板代码下面:
<p> PRE woocommerce_after_add_to_cart_button </p>
<?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
<p> POST woocommerce_after_add_to_cart_button </p>
<p> PRE woocommerce_after_add_to_cart_form </p>
<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>
<p> POST woocommerce_after_add_to_cart_form </p>