1
を使用して、プラグインでフィルタ私は名前の「JobBoardパッケージ」次のようにプラグインの上部に呼び出されてワードプレス
function apply_job_validate($validate){
$package = jb_package_get_current_package();
if(!$package){
jb_notice_add(esc_html__('You need to purchase a package before applying job.', 'jobboard-package'), 'error');
return true;
}
$applied = JB()->candidate->count_applied_all();
$limit = get_post_meta($package->ID, '_apply', true);
if($applied >= $limit){
jb_notice_add(esc_html__('Apply job limited, you can update your package.', 'jobboard-package'), 'error');
return true;
}
return $validate;
}
プラグインワードプレスで次のフィルタを持って上書き:私は
private function actions(){
add_action('wp_enqueue_scripts', array($this, 'add_scripts'));
add_action('admin_menu', array ($this, 'get_menu_notice') , 100);
add_action('admin_enqueue_scripts', array($this, 'add_admin_scripts'));
add_action('save_post_jobboard-post-jobs', array($this, 'save_post'));
add_filter('jobboard_query_endpoint_args', array($this, 'add_endpoint'));
add_filter('jobboard_query_endpoint_package_title', array($this, 'add_endpoint_package_title'));
add_filter('jobboard_query_endpoint_transactions_title', array($this, 'add_endpoint_transactions_title'));
add_filter('jobboard_employer_navigation_args', array($this, 'add_endpoint_menu'));
add_filter('jobboard_candidate_navigation_args', array($this, 'add_endpoint_menu'));
add_action('jobboard_endpoint_employer_new', array($this, 'get_template_add_new'), 0);
add_action('jobboard_endpoint_employer_package', array($this, 'get_template_package'));
add_action('jobboard_endpoint_candidate_package', array($this, 'get_template_package'));
add_filter('jobboard_form_handler_validate_add_job', array($this, 'add_new_job_validate'));
add_filter('jobboard_form_handler_validate_apply_job', array($this, 'apply_job_validate'));
}
をfeatures.phpを介してapply_job_validateを無効にしようとしました。次のコードとそのバリエーションを使ってプラグインとして運がないので、本当に助けになります。
if(class_exists('JB_Package')){
//This should work in whatever case
remove_filter('jobboard_form_handler_validate_apply_job', array('JB_Package', 'apply_job_validate'));
//or Instantiating a new instance
//remove_filter('jobboard_form_handler_validate_apply_job', array(new JB_Package(), 'apply_job_validate'));
//or Targeting the specific instance, not tested
//remove_filter('jobboard_form_handler_validate_apply_job', array(JB_Package::get_instance(), 'apply_job_validate'));
}
次のように私もそれを試してみました:
function remove_package() {
if (class_exists('JB_Package')) {
remove_filter('jobboard_form_handler_validate_apply_job', array('JB_Package', 'apply_job_validate'));
}
}
add_action('plugins_loaded','remove_package');
を任意の助けをいただければ幸いです。どうもありがとう!
ありがとうございました。クラスがフックされているかどうかをチェックする方法についてのアドバイスはありますか?私はまだフックで新しいですが、それは良いことをやっていることを理解しています。 – Cozmoz
wp_loadedでそれを使用してもまだ動作します。 – Cozmoz
私は次のようにもっと多くを削除しようとしましたが、残りの部分は動作しないようですhttps://anotepad.com/notes/csi3as – Cozmoz