Distributor: рд╕рд╣реА рд▓реЗрдЦрдХ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдлрд╝рд░ре░ 2018  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: 10up/distributor

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдЗрдЯреЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рдЙрдЪрд┐рдд рд▓реЗрдЦрдХ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрднреА рд╡рд┐рддрд░рдХ рд╡рд┐рддрд░рд┐рдд рдкреЛрд╕реНрдЯ рд▓реЗрдЦрдХ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдФрд░ рдореИрдВ рд╕реНрд╡рдпрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВ)ред рдпрд╣рд╛рдВ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рджрд┐рдП рдЧрдП рд╣реИрдВ:

  1. рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореВрд▓ рдкреЛрд╕реНрдЯ рд▓реЗрдЦрдХ рдХреА рдпреВрдЬрд░ рдЖрдИрдбреА рд╕реЗ рдЧреБрдЬрд░реЗрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдкрд░ рдЫреЛрдбрд╝ рджреЗрдВ рдХрд┐ рдЙрдирдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рд╕рднреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╕рдордиреНрд╡рдпрд┐рдд рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ SSO рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдореМрдЬреВрджрд╛ рдкреЛрд╕реНрдЯ рд▓реЗрдЦрдХ рдЖрдИрдбреА рдФрд░ рдХрд┐рд╕ рд╕рд╛рдЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ "рд╕рд╣реА" рд▓реЗрдЦрдХ рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдПрдХ рд╣реБрдХ рдЬреЛрдбрд╝реЗрдВ (рдпрд╛ рдкреБрд▓ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ dt_item_mapping рдпрд╛ рдкреБрд╢ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП dt_push_post_args рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) рд╣рдо рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдмрд╛рд╣рд░реА рд╕рд╛рдЗрдЯ рд▓реЗрдЦрдХ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕рд╛рдЗрдЯ рд▓реЗрдЦрдХ рдЖрдИрдбреА рдХрд╛ рдирдХреНрд╢рд╛ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдард┐рди рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рдмрд╛рд░ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдорд╛рд░реНрдЧ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдЦреБрдж рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ README.md рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░ рдореЗрдВ рдПрдХ UI рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА, рдлреАрдбрдмреИрдХ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рдирд╛ рд╣реИ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд░рд╛рд╕реНрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ ASAP рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рд╡рд╛рдкрд╕ рд╕рдмрдорд┐рдЯ рдХрд░реВрдВрдЧрд╛ред

Enterprise support enhancement

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдордиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рд┐рдВрдбрд┐рдХреЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдФрд░ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдХреЗ рдИрдореЗрд▓ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рднреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдПрдХ рд╣реА рдИрдореЗрд▓ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЯрд┐рдк @dleeward рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдХреБрдЫ рдХреЛрдб рдХреЛ рдПрдХ рд╕рд╛рде рд╣реИрдХ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдереАрдо functions.php рдореЗрдВ рдПрдХ рдкреБрд╢ рдХреЗ рджреМрд░рд╛рди рд▓реЗрдЦрдХреЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрд╛рд░рд┐рдд рдИрдореЗрд▓ рдкрддреЗ рджреНрд╡рд╛рд░рд╛ рд▓реЗрдЦрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреБрд╢рд┐рдВрдЧ WP рд╕реЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрднреА рддрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрднреА рддрдХ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

if ( defined( 'DT_VERSION' ) ) {
  function setup_distributor_replacements() {
    $post_types = get_post_types(array('show_in_rest' => true));
    foreach ( $post_types as $post_type ) {
      add_action( "rest_insert_{$post_type}", 'process_original_author', 10, 3 );
    }
  }

  function process_original_author( $post, $request, $update ) {
    if ( empty( $post ) || is_wp_error( $post ) ) {
      return;
    }
    if ( ! empty( $request['distributor_original_author'] ) ) {
      $author_obj = $request['distributor_original_author'];
      $new_author = get_user_by( 'email', $author_obj['email'] );
      $author_id = 0;
      if ( ! empty( $new_author ) && ! is_wp_error( $new_author ) ) {
        $author_id = $new_author->ID;
      } else {
        $create_user = wp_insert_user(array(
          'display_name'      => $author_obj['display_name'],
          'first_name'        => $author_obj['first_name'],
          'last_name'         => $author_obj['last_name'],
          'nickname'          => $author_obj['nickname'],
          'user_displayname'  => $author_obj['user_displayname'],
          'user_email'        => $author_obj['user_email'],
          'user_login'        => $author_obj['user_login'],
          'user_nicename'     => $author_obj['user_nicename'],
          'user_pass'         => NULL
        ));
        if ( is_wp_error( $create_user ) ) {
          error_log("Error creating user during Distributor push ".$create_user->get_error_message());
          return;
        }
        $author_id = $create_user;
      }
      wp_update_post( array( 'ID' => $post->ID, 'post_author' => $author_id ) );
    }
  }

  add_action('init', 'setup_distributor_replacements');

  function add_original_author($post_body, $post, $that) {
    $post_author = get_user_by( 'id', $post->post_author );
    $author_obj = array(
      'display_name'  => $post_author->display_name,
      'first_name'    => get_user_meta($post->post_author, 'first_name', true),
      'first_name'    => get_user_meta($post->post_author, 'first_name', true),
      'last_name'     => get_user_meta($post->post_author, 'last_name', true),
      'user_email'    => $post_author->user_email,
      'user_login'    => $post_author->user_login,
      'user_nicename' => $post_author->user_nicename,
    );
    $post_body['distributor_original_author'] = $author_obj;
    return $post_body;
  }

  add_filter('dt_push_post_args', 'add_original_author', 1, 3);

}

@robbiet480 рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП рдХрд┐ рдореВрд▓ рд▓реЗрдЦрдХ рдХрд╛ user_login рдФрд░ user_nicename рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╣рдо рд╡рд░реНрддрдорд╛рди рдпреВрдирд┐рдХреНрд╕ рд╕рдордп рдХрд╛ рдПрдХ рдордирдорд╛рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЫреЛрдЯреА рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреИрд╕реЗ ABC1519562843 рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдорд╛рдЗрдХреНрд░реЛрдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рдХреА рдереАред

рдЖрдо рддреМрд░ рдкрд░, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕рдВрдЧрдд рд╕рдорд╛рдзрд╛рди рд╣реИред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рджреВрд░рд╕реНрде рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ рдХрдард┐рди рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдПрдХ рдЯрди рдЦреЛрд▓рддрд╛ рд╣реИред рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднреВрдорд┐рдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЙрд╕ рдЦрд╛рддреЗ рдХреЛ рдореВрд▓ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдмреЗрд╢рдХ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ рд╣рдо рдЕрдиреНрдп рд░рд╛рдп рд╕реБрдирдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ @robbiet480 рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реБрдХ/рдлрд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд▓реЗрдЦрдХ <-> рд╕рд╛рдордЧреНрд░реА рд╕рдВрдмрдВрдз рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рдореИрдВ рдбреАрдПрдлрдПрдо рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд┐рдВрдбрд┐рдХреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рд╕рд╣-рд▓реЗрдЦрдХ рдкреНрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрдИ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдкреЛрд╕реНрдЯ-рдЯрд╛рдЗрдк/рдЯреИрдХреНрд╕реЛрдиреЙрдореА рд╕рдорд╛рдзрд╛рди рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _рд╡рд╛рдВрдЯреЗрдб_ рдкреЛрд╕реНрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдереЗ рд╕рд┐рдВрдбрд┐рдХреЗрдЯреЗрдб рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдЦрдХ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢рд╛рди рдерд╛ рдХрд┐ рдХрд┐рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рд┐рдВрдбрд┐рдХреЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛, рдФрд░ рд╣рдордиреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдбрд┐рдХреЗрдЯ рдХрд┐рдпрд╛<->рд╕рд╛рдордЧреНрд░реА рд╕рдВрдмрдВрдз (рдХреБрдЫ рд╣рдж рддрдХ рдореАрдбрд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ, рдЬреЗрд╕рди!

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдХрджрдо рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣-рд▓реЗрдЦрдХ рдкреНрд▓рд╕ рдХреЗ рд▓рд┐рдП рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рддрд░рдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред рдПрдХреАрдХрд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ #131 рдореЗрдВ рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрддрд╛рдЫ рдХреА рд╣реИред

<?php

function handle_dt_process_distributor_attributes( $post, $request, $update ) {
  if ( empty( $post ) || is_wp_error( $post ) ) {
    return;
  }

  if ( is_plugin_active( 'co-authors-plus/co-authors-plus.php' ) && ! empty( $request['distributor_coauthors'] ) ) {
    global $coauthors_plus;

    $author_logins = array();

    foreach ( $request['distributor_coauthors'] as $coauthor ) {

      $existing_guest_author = $coauthors_plus->guest_authors->get_guest_author_by( 'user_login', $coauthor['user_login'] );

      if ( ! $existing_guest_author ) {
        $guest_author_id = $coauthors_plus->guest_authors->create( array(
          'display_name' => $coauthor['display_name'],
          'first_name' => $coauthor['first_name'],
          'last_name' => $coauthor['last_name'],
          'user_login' => $coauthor['user_login'],
          'user_nicename' => $coauthor['user_nicename']
        ) );

        if ( is_wp_error( $guest_author_id ) ) {
          error_log("Error creating co-author during Distributor push ".$guest_author_id->get_error_message());
          return;
        }

        if ( !$guest_author_id ) {
          error_log( '-- Failed to create guest author.' );
        }

        if ( ! empty($coauthor['avatar_url']) ) {
          require_once(ABSPATH . 'wp-admin/includes/media.php');
          require_once(ABSPATH . 'wp-admin/includes/file.php');
          require_once(ABSPATH . 'wp-admin/includes/image.php');

          $thumbnail_id = media_sideload_image($coauthor['avatar_url'], $guest_author_id, null, 'id');
          set_post_thumbnail($guest_author_id, $thumbnail_id);
        }

        $guest_author = $coauthors_plus->guest_authors->get_guest_author_by( 'ID', $guest_author_id );
        array_push($author_logins, $guest_author->user_login);
      } else {
        array_push($author_logins, $existing_guest_author->user_login);
      }
    }
    clean_post_cache($post->ID);
    $coauthors_plus->guest_authors->delete_guest_author_cache($author_logins[0]);
  }
}

add_action( 'dt_process_distributor_attributes', 'handle_dt_process_distributor_attributes', 10, 3 );

if ( is_plugin_active( 'co-authors-plus/co-authors-plus.php' ) ) {
  function distributor_coauthors_get_avatar_url( $coauthor ) {
    global $coauthors_plus;
    if ( ! is_object( $coauthor ) ) {
      return '';
    }

    if ( isset( $coauthor->type ) && 'guest-author' == $coauthor->type ) {
      if ( ! has_post_thumbnail( $coauthor->ID ) ) {
        return '';
      }

      $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id( $coauthor->ID ), 'large' );

      return $large_image_url[0];
    }

    // Make sure we're dealing with an object for which we can retrieve an email
    if ( isset( $coauthor->user_email ) ) {
      return get_avatar( $coauthor->user_email, $size, $default, $alt );
    }

    // Nothing matched, an invalid object was passed.
    return '';
  }
}

function add_dt_push_post_args($post_body, $post, $that) {
  if ( is_plugin_active( 'co-authors-plus/co-authors-plus.php' ) ) {
    $post_body['distributor_coauthors'] = array();

    foreach ( $coauthors as $coauthor ) {
      if( array_key_exists("data", $coauthor) ) {
        // Don't include real WP_Users
        continue;
      }
      $coauthor_arr = (array) $coauthor;
      $coauthor_arr['avatar_url'] = distributor_coauthors_get_avatar_url($coauthor);
      array_push($post_body['distributor_coauthors'], $coauthor_arr);
    }
  }

  return $post_body;
}

add_filter('dt_push_post_args', 'add_dt_push_post_args', 1, 3);

add_filter('dt_push_post_timeout', function($default_timeout, $post) {
  return 30;
}, 1, 2);

рдкреБрди: рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓ рдкреНрд░рд╢реНрди, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╕реАрдПрдкреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрдЯреЙрдк рдЧреИрдк рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд┐рддрд░рдХ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗ рдХрд┐ рдЙрдЪрд┐рдд рд▓реЗрдЦрдХ рдХреЛ рд╢реНрд░реЗрдп рджрд┐рдпрд╛ рдЬрд╛рдП, рдЬрдмрдХрд┐ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ рдЬреЛ @ tlovet1 рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рднреВрдорд┐рдХрд╛ рдирдИ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд╣реИ рдФрд░ рдРрд╕реЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд▓реЗрдЦрдХ рдЬреИрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯреИрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЕрдм рд╣рдо рдореВрд▓ рд╕рд╛рдЗрдЯ рдирд╛рдо рдХреЛ рдХреИрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ #131 рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрдгрдп рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрджрд┐ рдпрд╣ рдирд┐рд░реНрдгрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░ рд╣реБрдХ/рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЕрдзрд┐рдХ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛, рддреЛ рд╣рдо рд╕рд╣-рд▓реЗрдЦрдХ рдкреНрд▓рд╕ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде/рд╕рд╛рде рдХреИрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХреЗ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрдЯрд░ рд╣реБрдХ/рдлрд╝рд┐рд▓реНрдЯрд░-рдУрдирд▓реА рдЕрдкреНрд░реЛрдЪ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗ (рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛ-рдСрдерд░реНрд╕ рдкреНрд▓рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jeffpaul picture jeffpaul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

helen picture helen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lakrisgubben picture lakrisgubben  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

willopez picture willopez  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jeffpaul picture jeffpaul  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ