Make image required for vendors only

Please try this PHP snippet

add_filter(
	'hivepress/v1/forms/user_update/errors',
	function( $errors, $form ) {
		if(!empty($errors)){
			return $errors;
		}
		
		$vendor = \HivePress\Models\Vendor::query()->filter(
				[
					'user' => get_current_user_id(),
				]
			)->get();
		
		if(!$vendor){
			return $errors;
		}
		
		$user = $form->get_model();

		if ( $user && ! $user->get_image__id() ) {
			$errors[] = 'Please upload the profile image.';
		}

		return $errors;
	},
	100,
	2
);

add_filter(
	'hivepress/v1/forms/user_update',
	function( $form ) {
		$vendor = \HivePress\Models\Vendor::query()->filter(
				[
					'user' => get_current_user_id(),
				]
			)->get();
		
		if(!$vendor){
			return $form;
		}
		
		$form['fields']['image']['statuses']['optional'] = null;

		return $form;
	},
	1000
);
1 Like