id = 'become-an-instructor';
$this->title = __( 'Request', 'learnpress' );
$this->description = __( 'Become an instructor email.', 'learnpress' );
$this->default_subject = __( '[{{site_title}}] Request to become an instructor', 'learnpress' );
$this->default_heading = __( 'Become an instructor', 'learnpress' );
parent::__construct();
$variable_on_email_support = apply_filters(
'lp/email/become-an-instructor/variables-support',
[
'{{request_email}}',
'{{request_phone}}',
'{{request_message}}',
'{{admin_user_manager}}',
'{{accept_url}}',
'{{deny_url}}',
]
);
$this->support_variables = array_merge( $this->support_variables, $variable_on_email_support );
}
/**
* Check email enable option
* Check param valid: 4 params: bat_name, bat_email, bat_phone, bat_message
* Set values
*
* @param array $params
* @throws Exception
*/
public function handle( array $params ) {
if ( ! $this->enable ) {
return;
}
if ( count( $params ) < 1 ) {
return;
}
if ( ! $this->set_data_content( $params[0] ) ) {
return;
}
$this->set_receive( $this->_get_admin_email() );
$this->send_email();
}
/**
* Set data content
*/
protected function set_data_content( $params ): bool {
$bat_email = $params['bat_email'] ?? '';
$bat_phone = $params['bat_phone'] ?? '';
$bat_message = $params['bat_message'] ?? '';
$user = get_user_by( 'email', $bat_email );
if ( ! $user ) {
return false;
}
$content_format = $this->get_content_format();
$is_html = 'text/plain' !== $content_format;
$admin_user_manager = admin_url( 'users.php?lp-action=pending-request' );
$accept_url = admin_url( 'users.php?lp-action=accept-request&user_id=' . $user->ID );
$deny_url = admin_url( 'users.php?lp-action=deny-request&user_id=' . $user->ID );
if ( $is_html ) {
$admin_user_manager = sprintf(
'%s',
esc_url( $admin_user_manager ),
esc_url( $admin_user_manager )
);
$accept_url = sprintf(
'%s',
esc_url( $accept_url ),
esc_url( $accept_url )
);
$deny_url = sprintf(
'%s',
esc_url( $deny_url ),
esc_url( $deny_url )
);
}
$this->variables = apply_filters(
'lp/email/type-become-an-instructor-admin/variables-mapper',
[
'{{request_email}}' => $bat_email,
'{{request_phone}}' => $bat_phone,
'{{request_message}}' => $bat_message,
'{{admin_user_manager}}' => $admin_user_manager,
'{{accept_url}}' => $accept_url,
'{{deny_url}}' => $deny_url,
]
);
$variables_common = $this->get_common_variables( $this->email_format );
$this->variables = array_merge( $this->variables, $variables_common );
return true;
}
}
return new LP_Email_Become_An_Instructor();
}