Beispiel #1
0
    /**
     * render profile button associate with user login 
     * @since 1.0			
     * @author Dakachi
     */
    function fre_profile_button()
    {
        global $user_ID;
        /* user have not logged in */
        if (!$user_ID) {
            ?>
			<a href="<?php 
            echo et_get_page_link('auth');
            ?>
" class="btn btn-sumary btn-post-profile">
		        <i class="fa fa-plus-circle"></i><?php 
            _e("Create a Profile", 'template-backend');
            ?>
		    </a>
		<?php 
            return;
        }
        // current user is a freelancer
        if (fre_share_role() || ae_user_role() == FREELANCER) {
            ?>
			<a href="<?php 
            echo et_get_page_link(array('page_type' => 'profile', 'post_title' => __("Profile", 'template-backend')));
            ?>
" class="btn btn-sumary btn-post-profile">
	            <i class="fa fa-plus-circle"></i><?php 
            _e("Review your Profile", 'template-backend');
            ?>
	        </a>
		<?php 
            return '';
        }
        // current user is an employer
        ?>
			<a href="<?php 
        echo get_post_type_archive_link(PROFILE);
        ?>
" class="btn btn-sumary btn-post-profile">
	            <i class="fa fa-plus-circle"></i><?php 
        _e("Find a Freelancer", 'template-backend');
        ?>
	        </a>
		<?php 
    }
Beispiel #2
0
 /**
  * add query var
  */
 function restrict_pages()
 {
     global $current_user;
     //if user is login and access to page auth
     if (is_user_logged_in() && is_page_template('page-auth.php')) {
         wp_redirect(home_url());
         exit;
     }
     //if user is not login and access to page profile
     if (!is_user_logged_in() && is_page_template('page-profile.php')) {
         $re_url = et_get_page_link('auth') . '?ae_redirect_url=' . urlencode(et_get_page_link('profile')) . '#signin';
         wp_redirect($re_url);
         exit;
     }
     // prevent user enter single profile
     if (is_singular(PROFILE)) {
         global $post;
         wp_redirect(get_author_posts_url($post->post_author));
         exit;
     }
     // if( is_singular(PROJECT) ){
     //     global $post, $user_ID;
     //     if( $post->post_status != 'publish' ){
     //         if( $post->post_author != $user_ID && !current_user_can( 'manage_options ' ) ){
     //             wp_redirect( home_url() );
     //             exit;
     //         }
     //     }
     // }
     // prevent freelancer post project
     if (is_page_template('page-submit-project.php')) {
         if (!fre_share_role() && ae_user_role() == FREELANCER) {
             wp_redirect(home_url());
             exit;
         }
     }
     /**
     * prevent user try to view a bid details
     # when user enter a link to bid redirect to home url
     */
     if (is_singular(BID)) {
         wp_redirect(home_url());
         exit;
     }
 }
Beispiel #3
0
 /**
  * ajax callback sync post details
  * - update
  * - insert
  * - delete
  */
 function post_sync()
 {
     $request = $_REQUEST;
     global $ae_post_factory, $user_ID;
     if (!AE_Users::is_activate($user_ID)) {
         wp_send_json(array('success' => false, 'msg' => __("Your account is pending. You have to activate your account to continue this step.", 'projects-backend')));
     }
     if (check_existing_post_name($request['post_title']) && $request['method'] != 'update') {
         wp_send_json(array('success' => false, 'msg' => __("Current title name already exists", 'projects-backend')));
     }
     // prevent freelancer submit project
     if (!fre_share_role() && ae_user_role() == FREELANCER) {
         wp_send_json(array('success' => false, 'msg' => __("You need an employer account to post a project.", 'projects-backend')));
     }
     // unset package data when edit place if user can edit others post
     if (isset($request['ID']) && !isset($request['renew'])) {
         unset($request['et_payment_package']);
     }
     if (isset($request['archive'])) {
         $request['post_status'] = 'archive';
     }
     if (isset($request['publish'])) {
         $request['post_status'] = 'publish';
     }
     if (isset($request['delete'])) {
         $request['post_status'] = 'trash';
     }
     if (isset($request['disputed'])) {
         $request['post_status'] = 'disputed';
     }
     if (isset($request['close_disput'])) {
         $request['post_status'] = get_post_meta($request['ID'], 'post_status_before_disput', true);
     }
     if (isset($request['project_type'])) {
         unset($request['project_type']);
     }
     $place = $ae_post_factory->get($this->post_type);
     // sync place
     $result = $place->sync($request);
     if (!is_wp_error($result)) {
         // update place carousels
         if (isset($request['et_carousels'])) {
             // loop request carousel id
             foreach ($request['et_carousels'] as $key => $value) {
                 $att = get_post($value);
                 // just admin and the owner can add carousel
                 if (current_user_can('manage_options') || $att->post_author == $user_ID) {
                     wp_update_post(array('ID' => $value, 'post_parent' => $result->ID));
                 }
             }
         }
         /**
          * check payment package and check free or use package to send redirect link
          */
         if (isset($request['et_payment_package'])) {
             // check seller use package or not
             $check = AE_Package::package_or_free($request['et_payment_package'], $result);
             // check use package or free to return url
             if ($check['success']) {
                 $result->redirect_url = $check['url'];
             }
             $result->response = $check;
             // check seller have reached limit free plan
             $check = AE_Package::limit_free_plan($request['et_payment_package']);
             if ($check['success']) {
                 // false user have reached maximum free plan
                 $response['success'] = false;
                 $response['msg'] = $check['msg'];
                 // send response to client
                 wp_send_json($response);
             }
         }
         // check payment package
         /**
          * check disable plan and submit place to view details
          */
         if ($this->disable_plan && $request['method'] == 'create') {
             if (ICL_LANGUAGE_CODE != 'en') {
                 $redirect = apply_filters('wpml_permalink', $result->permalink, ICL_LANGUAGE_CODE);
             } else {
                 $redirect = $result->permalink;
             }
             // disable plan, free to post place
             $response = array('success' => true, 'data' => array('ID' => $result->ID, 'redirect_url' => $redirect), 'msg' => __("Submit place successfull.", 'projects-backend'));
             // send response
             wp_send_json($response);
         }
         // send json data to client
         wp_send_json(array('success' => true, 'data' => $result, 'msg' => __("Update project successful!", 'projects-backend')));
     } else {
         // update false
         wp_send_json(array('success' => false, 'data' => $result, 'msg' => $result->get_error_message()));
     }
 }
            break;
        default:
            # code...
            break;
    }
    echo '</span>';
}
?>

                </li>
            </ul>
        </div>
        <div class="col-lg-4 col-md-12 col-sm-12">
            <div class="info-project-item-right">
                <?php 
if (fre_share_role() || ae_user_role() == 'employer' || ae_user_role() == 'administrator') {
    ?>
                <span class="link-clone">
                    <a href="<?php 
    echo et_get_page_link(array('page_type' => 'submit-project', 'post_title' => __("Submit project", ET_DOMAIN)));
    ?>
" title="">
                        <i class="fa fa-plus-circle"></i><?php 
    _e('Create a Project like this', ET_DOMAIN);
    ?>
                    </a>
                </span>
                <?php 
}
?>
                <ul class="list-share-social addthis_toolbox addthis_default_style" >
Beispiel #5
0
global $user_ID;
$author_id = get_query_var('author');
if (is_page_template('page-profile.php')) {
    $author_id = $user_ID;
}
// filter order post by status
add_filter('posts_orderby', 'fre_order_by_project_status');
query_posts(array('is_profile' => true, 'post_status' => array('publish', 'close', 'complete'), 'post_type' => PROJECT, 'author' => $author_id));
// remove filter order post by status
$bid_posts = $wp_query->found_posts;
?>
<div class="btn-tabs-wrapper">            
    <div class="work-history-heading">
        <a href="#" class="work-history-title" >
            <?php 
if (fre_share_role()) {
    printf(__('Posted Projects (%s)', ET_DOMAIN), fre_count_user_posts($author_id, PROJECT));
} else {
    printf(__('Works History (%s)', ET_DOMAIN), fre_count_user_posts($author_id, PROJECT));
}
?>
        </a>
        <div class="project-status-filter" >
            <select class="status-filter " name="post_status" data-chosen-width="100%" data-chosen-disable-search="1" 
                data-placeholder="<?php 
_e("Select a status", ET_DOMAIN);
?>
">
                <option value=""><?php 
_e("Select a status", ET_DOMAIN);
?>
Beispiel #6
0
 function fre_check_before_insert_bid($args)
 {
     global $user_ID;
     /**
      * add filter to filter bid required field
      * @param Array
      * @since 1.4
      * @author Dakachi
      */
     $bid_required_field = apply_filters('fre_bid_required_field', array('bid_budget', 'bid_time', 'bid_content'));
     if (is_wp_error($args)) {
         return $args;
     }
     if (in_array('bid_content', $args) && !isset($args['bid_content'])) {
         return new WP_Error('empty_content', __('Please enter your bid message.', ET_DOMAIN));
     }
     $args['post_content'] = $args['bid_content'];
     $project_id = isset($args['post_parent']) ? $args['post_parent'] : '';
     $args['post_status'] = 'publish';
     // $request = $_POST;
     /*
      * validate data
      */
     if (in_array('bid_budget', $bid_required_field) && (!isset($args['bid_budget']) || empty($args['bid_budget']))) {
         return new WP_Error('empty_bid', __('You have to set the bid budget.', ET_DOMAIN));
     }
     if (in_array('bid_time', $bid_required_field) && (!isset($args['bid_time']) || empty($args['bid_time']))) {
         return new WP_Error('empty_time', __('You have to set the time to finish project.', ET_DOMAIN));
     }
     if (in_array('bid_budget', $bid_required_field) && $args['bid_budget'] <= 0) {
         return new WP_Error('budget_less_than_zero', __("Your budget have to greater than zero!", ET_DOMAIN));
     }
     if (in_array('bid_budget', $bid_required_field) && !is_numeric($args['bid_budget']) || in_array('bid_time', $bid_required_field) && !is_numeric($args['bid_time'])) {
         return new WP_Error('invalid_input', __('Please enter a valid number in budget or bid time', ET_DOMAIN));
     }
     if (!$user_ID) {
         return new WP_Error('no_permission', __('Please login to bid a project', ET_DOMAIN));
     }
     if (get_post_status($project_id) != 'publish') {
         return new WP_Error('invalid_input', __('This project is not publish.', ET_DOMAIN));
     }
     // $accepted = get_post_meta($project_id,'accepted', true);
     // if($accepted || 'complete' ==  get_post_status($project_id) )
     //    return new  WP_Error (200 ,__('The project has been accepted', ET_DOMAIN));
     if (fre_has_bid($project_id)) {
         return new WP_Error(200, __('You have bid on this project', ET_DOMAIN));
     }
     $post_author = (int) get_post_field('post_author', $project_id, 'display');
     if ($user_ID == $post_author) {
         return new WP_Error(200, __('You can\'t bid on your project', ET_DOMAIN));
     }
     // check role to bid project
     $role = ae_user_role();
     if (!fre_share_role() && $role != FREELANCER) {
         return new WP_Error(200, __('You have to be a freelancer to bid a project.', ET_DOMAIN));
     }
     /*
      * check profile has set?
      */
     $profile_id = get_user_meta($user_ID, 'user_profile_id', true);
     $profile = get_post($profile_id);
     // user have to complete profile to bid a project
     if (!$profile || !is_numeric($profile_id)) {
         return new WP_Error(200, __('You must complete your profile to bid on a project.', ET_DOMAIN));
     }
     /* when using escrow, freelancer must setup an paypal account */
     $stripe_api = ae_get_option('escrow_stripe_api');
     if (ae_get_option('use_escrow') && (!$stripe_api || !$stripe_api['use_stripe_escrow'])) {
         $paypal_account = get_user_meta($user_ID, 'paypal', true);
         if (!$paypal_account) {
             return new WP_Error('dont_have_paypal', __('You must setup your paypal account in profile to receive money.', ET_DOMAIN));
         }
     }
     return $args;
 }
Beispiel #7
0
    <?php 
}
?>
    <!-- Author overview -->
    <div class="content-project-wrapper">
   		<h2 class="title-content">
            <?php 
_e('Overview:', ET_DOMAIN);
?>
        </h2>
        <?php 
echo $convert->post_content;
if (function_exists('et_render_custom_field')) {
    et_render_custom_field($convert);
}
?>
    </div>

    <div class="history-cmt-wrapper">
        <?php 
if (fre_share_role() || $user_role == FREELANCER) {
    get_template_part('mobile/template/bid', 'history');
}
if (fre_share_role() || $user_role != FREELANCER) {
    get_template_part('mobile/template/work', 'history');
}
?>
    </div>
</section>
<?php 
et_get_mobile_footer();
                    <?php 
if (current_user_can('manage_options')) {
    get_template_part('template/admin', 'project-control');
} elseif (!$user_ID && $project_status == 'publish') {
    ?>
                        <a href="#"  class="btn btn-apply-project-item btn-login-trigger" ><?php 
    _e('Bid', 'projects-page');
    ?>
</a>
                        <a href="#" class="popup-login" style="display:none;">Open Login Popup</a>
                    <?php 
} else {
    $role = ae_user_role();
    switch ($project_status) {
        case 'publish':
            if ((fre_share_role() || $role == FREELANCER) && $user_ID != $project->post_author) {
                $has_bid = fre_has_bid(get_the_ID());
                if ($has_bid) {
                    ?>
                                        <a rel="<?php 
                    echo $project->ID;
                    ?>
" href="#" id="<?php 
                    echo $has_bid;
                    ?>
"
                                           title="<?php 
                    _e('Cancel this bidding', 'projects-page');
                    ?>
"
                                           class="btn btn-apply-project-item btn-del-project-modal modal_bid_update">
Beispiel #9
0
    ?>
</p>
                                    <?php 
    if (function_exists('et_the_field')) {
        et_render_custom_meta($convert);
        et_render_custom_taxonomy($convert);
    }
    ?>
                                </div>
                                <!--// overview -->
                                <?php 
}
if (fre_share_role() || ae_user_role($author_id) != FREELANCER) {
    get_template_part('template/work', 'history');
}
if (fre_share_role() || ae_user_role($author_id) == FREELANCER) {
    get_template_part('template/bid', 'history');
    $bid_posts = $wp_query->found_posts;
    ?>
                                    <div class="portfolio-container">
                                    <?php 
    query_posts(array('post_status' => 'publish', 'post_type' => PORTFOLIO, 'author' => $author_id));
    if (have_posts()) {
        get_template_part('template/portfolios', 'filter');
        // list portfolio
        get_template_part('list', 'portfolios');
    } else {
    }
    //wp_reset_postdata();
    wp_reset_query();
    ?>