Php 从网页中删除重力表单操作

Php 从网页中删除重力表单操作,php,wordpress,hook,gravity-forms-plugin,Php,Wordpress,Hook,Gravity Forms Plugin,所以我在我的网页上有一个隐藏的重力表单(触发重力流)。当一个产品被添加到购物车中,但这不是我想要的时,就会触发 我可以通过删除init上的操作来删除此行为。下面的行为是我不想要的行为 add_action( 'init', 'remove_gravityflow_after_submit' ); function remove_gravityflow_after_submit(){ remove_action( 'gform_entry_pre_handle_confirmati

所以我在我的网页上有一个隐藏的重力表单(触发重力流)。当一个产品被添加到购物车中,但这不是我想要的时,就会触发

我可以通过删除init上的操作来删除此行为。下面的行为是我不想要的行为

add_action( 'init', 'remove_gravityflow_after_submit' );
  function remove_gravityflow_after_submit(){
      remove_action( 'gform_entry_pre_handle_confirmation', array( gravity_flow(), 'after_submission' ), 9 );
      remove_action( 'gform_pre_handle_confirmation', array( gravity_flow(), 'after_submission' ), 9 );
      remove_action( 'gform_after_submission', array( gravity_flow(), 'after_submission' ), 9 );
      remove_action( 'gform_post_add_entry', array( gravity_flow(), 'action_gform_post_add_entry' ), 10 );
  }
这很好,所以我可以在以后的其他地方手动提交表单

这种方法的问题是它禁用了所有其他graavity表单。所以这让我想到。。解决方案是只有当我在WooCommerce页面上时才删除此行为。如果我能让它发挥作用的话,它会起作用的,而我现在还没有

我的解决办法是

add_action( 'init', 'remove_gravityflow_after_submit' );
    function remove_gravityflow_after_submit(){
    if ( is_woocommerce() || is_product() ){
        remove_action( 'gform_entry_pre_handle_confirmation', array( gravity_flow(), 'after_submission' ), 9 );
        remove_action( 'gform_pre_handle_confirmation', array( gravity_flow(), 'after_submission' ), 9 );
        remove_action( 'gform_after_submission', array( gravity_flow(), 'after_submission' ), 9 );
        remove_action( 'gform_post_add_entry', array( gravity_flow(), 'action_gform_post_add_entry' ), 10 );
    }
}
但这不起作用,主要是因为我认为WooCommerce在这一点上没有加载,所以条件不起作用。另一种选择是将删除的操作添加回

if ( is_woocommerce() ) { ... remove action } else { add_action }

但由于我不能在'init'中使用条件,我也不能使这种方法工作。这样做的最佳方式是什么?我还尝试删除“模板重定向”钩子,但它也不起作用

我仍然需要插件工作。。。不只是在所述页面上执行特定操作。感谢您的建议,尽管@MujeebuRahmani仍然需要该插件才能工作。。。不只是在所述页面上执行特定操作。谢谢你的建议@MujeebuRahman