File "User.php"
Full Path: /home/dcqnetm/intuns/wp-content/plugins/tutor/classes/User.php
File size: 6.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace TUTOR;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class User {
private static $hide_registration_notice = false;
public function __construct() {
add_action( 'edit_user_profile', array( $this, 'edit_user_profile' ) );
add_action( 'show_user_profile', array( $this, 'edit_user_profile' ), 10, 1 );
add_action( 'profile_update', array( $this, 'profile_update' ) );
add_action( 'set_user_role', array( $this, 'set_user_role' ), 10, 3 );
add_action('wp_ajax_tutor_user_photo_remove', array($this, 'tutor_user_photo_remove'));
add_action('wp_ajax_tutor_user_photo_upload', array($this, 'update_user_photo'));
add_action( 'admin_notices', array( $this, 'show_registration_disabled' ) );
add_action( 'admin_init', array( $this, 'hide_notices' ) );
}
private $profile_layout = array(
'pp-circle',
'pp-rectangle',
'no-cp',
);
public function edit_user_profile($user){
include tutor()->path.'views/metabox/user-profile-fields.php';
}
private function delete_existing_user_photo( $user_id, $type ) {
$meta_key = $type == 'cover_photo' ? '_tutor_cover_photo' : '_tutor_profile_photo';
$photo_id = get_user_meta( $user_id, $meta_key, true );
is_numeric( $photo_id ) ? wp_delete_attachment( $photo_id, true ) : 0;
delete_user_meta( $user_id, $meta_key );
}
public function tutor_user_photo_remove(){
tutor_utils()->checking_nonce();
$this->delete_existing_user_photo(get_current_user_id(), tutor_sanitize_data( $_POST['photo_type'] ));
}
public function update_user_photo(){
tutor_utils()->checking_nonce();
$user_id = get_current_user_id();
$meta_key = sanitize_text_field( $_POST['photo_type'] ) == 'cover_photo' ? '_tutor_cover_photo' : '_tutor_profile_photo';
/**
* Photo Update from profile
*/
$photo = tutor_utils()->array_get('photo_file', $_FILES);
$photo_size = tutor_utils()->array_get('size', $photo);
$photo_type = tutor_utils()->array_get('type', $photo);
if ( $photo_size && strpos( $photo_type, 'image' ) !== false ) {
if ( ! function_exists( 'wp_handle_upload' ) ) {
require_once ABSPATH . 'wp-admin/includes/file.php';
}
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $photo, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
$file_path = tutor_utils()->array_get( 'file', $movefile );
$file_url = tutor_utils()->array_get( 'url', $movefile );
$media_id = wp_insert_attachment(
array(
'guid' => $file_path,
'post_mime_type' => mime_content_type( $file_path ),
'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file_url ) ),
'post_content' => '',
'post_status' => 'inherit',
),
$file_path,
0
);
if ( $media_id ) {
// wp_generate_attachment_metadata() won't work if you do not include this file
require_once ABSPATH . 'wp-admin/includes/image.php';
// Generate and save the attachment metas into the database
wp_update_attachment_metadata( $media_id, wp_generate_attachment_metadata( $media_id, $file_path ) );
// Update it to user profile
$this->delete_existing_user_photo( $user_id, tutor_sanitize_data($_POST['photo_type']) );
update_user_meta( $user_id, $meta_key, $media_id );
exit( json_encode( array( 'status' => 'success' ) ) );
}
}
}
}
public function profile_update($user_id){
if (tutor_utils()->array_get('tutor_action', $_POST) !== 'tutor_profile_update_by_wp' ){
return;
}
$_tutor_profile_job_title = sanitize_text_field( tutor_utils()->avalue_dot( '_tutor_profile_job_title', $_POST ) );
$_tutor_profile_bio = wp_kses_post( tutor_utils()->avalue_dot( '_tutor_profile_bio', $_POST ) );
$_tutor_profile_image = wp_kses_post( tutor_utils()->avalue_dot( '_tutor_profile_photo', $_POST ) );
update_user_meta( $user_id, '_tutor_profile_job_title', $_tutor_profile_job_title );
update_user_meta( $user_id, '_tutor_profile_bio', $_tutor_profile_bio );
update_user_meta( $user_id, '_tutor_profile_photo', $_tutor_profile_image );
}
public function set_user_role( $user_id, $role, $old_roles ) {
$instructor_role = tutor()->instructor_role;
if ( in_array( $instructor_role, $old_roles ) ) {
// tutor_utils()->remove_instructor_role($user_id);
}
// if ($role === $instructor_role){
if ( $role === $instructor_role || in_array( $instructor_role, $old_roles ) ) {
tutor_utils()->add_instructor_role( $user_id );
}
}
public function hide_notices() {
if(is_admin() && isset( $_GET['tutor-hide-notice'] ) && $_GET['tutor-hide-notice']=='registration') {
tutor_utils()->checking_nonce('get');
if ( isset( $_GET['tutor-registration'] ) && $_GET['tutor-registration'] === 'enable' ) {
update_option( 'users_can_register', 1 );
} else {
self::$hide_registration_notice = true;
setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
}
}
}
public function show_registration_disabled() {
if (
self::$hide_registration_notice ||
!tutor_utils()->is_tutor_dashboard() ||
get_option( 'users_can_register' ) ||
isset( $_COOKIE['tutor_notice_hide_registration'] ) ||
! current_user_can( 'manage_options' )
) {
return;
}
$hide_url = wp_nonce_url( add_query_arg( 'tutor-hide-notice', 'registration' ), tutor()->nonce_action, tutor()->nonce );
?>
<div class="wrap tutor-user-registration-notice-wrapper">
<div class="tutor-user-registration-notice">
<div>
<img src="<?php echo esc_url( tutor()->url . 'assets/images/icon-info-round.svg' ); ?>"/>
</div>
<div>
<?php _e( 'As membership is turned off, students and instructors will not be able to sign up. <strong>Press Enable</strong> or go to <strong>Settings > General > Membership</strong> and enable "Anyone can register".' ); ?>
</div>
<div>
<a href="<?php echo esc_url( add_query_arg( 'tutor-registration', 'enable', $hide_url ) ); ?>"><?php _e( 'Enable', 'tutor' ); ?></a>
<hr/>
<a href="<?php echo esc_url( $hide_url ); ?>"><?php _e( 'Dismiss', 'tutor' ); ?></a>
</div>
</div>
</div>
<?php
}
}