xU�V�IaAp�`Ax)iA0�~A�����U��`AP�`Ax)iAh�~A��~A��~A��~A0�`Al�{��RlA�RlA�aA�aA0�iAP�`AP�`AP�kAP�`A�|aA�|aA�|aA�,aA@�~A�+aA�Vl��U�P ?�Rl��U�� =aEl��UPP uO_l��U� <�)l��UP� �&l��UP� �Cl��U�@ +\ l��U� >�Rl��U��=�#l��UP��R Dl��U�PAYl��U�`AO_l��U<�)l��U`Tl��U` ��7l��U 0�Cl��U0+�%l��U`�@M�dl��U@p�N�Rl��U�(=aEl��UpPu)`l��U <�Il��U����*�hl��U@�Rl��U� 0=�#l��UP�`8R Dl��U`PAYl��U�`AO_l��Up<�)l��U�p �Rl��U�pP=O_l��U�<�)l��U���%l��U� �M�dl��U���N�)l��U���#l��UP��XR�)l��U����Cl��U�`+!-l��U���?��UP��Il��U ���*�hl��U��Rl��Upp=Yl��U�PAaEl��U�`u)`l��U<�&l��U�� !.�Rl��Up�x!=aEl��U�P!uO_l��U0!<�7l��U0@!a7l��U@ !4�Cl��U �!+�Rl��U���*=Yl��U�P*A�#l��UP�P�*R Dl��UP`*A)`l��U*<,&l��U�->\ l��U@����.>�~A8�zA@�iA��sA@qA �zA@�iA��sA8!{A@�iA�sAP�sA�iA�oiA�~A@�iA�o�{��Vl��U�P�?�Rl��U���=aEl��UPP�uO_l��U��<�)l��U`���&l��U`���7l��U����/�#l��U`���R03l��U����a7l��U���4�Cl��U�@�+\ l��U��>�Rl��Up� �=�#l��U`p�(�R Dl��U�P�AYl��U@`�A�Fl��U����)l��Up��p$l��Up��ZA6l��U� �s�Cl��U @�+\ l��U��>�Rl��U��@�=Yl��U�P�AYl��U�`�A)`l��U �<�$l��UpP@�Q�6l��U@@P�Q�3l��UP�`�M�dl��U`�`�NTl��U�p���Cl��Up@�+ ) { return false; } $current_screen = \get_current_screen(); return $current_screen->base === 'post' && $current_screen->action === 'add'; } /** * Determines if we are currently editing a post with Classic editor. * * @return bool Whether we are currently editing a post with Classic editor. */ public function is_classic_editor() { if ( ! $this->is_edit_post_screen() && ! $this->is_new_post_screen() ) { return false; } $screen = \get_current_screen(); if ( $screen->is_block_editor() ) { return false; } return true; } /** * Determines if the original post has changed since the creation of the copy. * * @param WP_Post $post The post object. * * @return bool Whether the original post has changed since the creation of the copy. */ public function has_original_changed( WP_Post $post ) { if ( ! $this->is_rewrite_and_republish_copy( $post ) ) { return false; } $original = Utils::get_original( $post ); $copy_creation_date_gmt = \get_post_meta( $post->ID, '_dp_creation_date_gmt', true ); if ( $original && $copy_creation_date_gmt ) { if ( \strtotime( $original->post_modified_gmt ) > \strtotime( $copy_creation_date_gmt ) ) { return true; } } return false; } /** * Determines if duplicate links for the post can be displayed. * * @param WP_Post $post The post object. * * @return bool Whether the links can be displayed. */ public function should_links_be_displayed( WP_Post $post ) { /** * Filter allowing displaying duplicate post links for current post. * * @param bool $display_links Whether the duplicate links will be displayed. * @param WP_Post $post The post object. * * @return bool Whether or not to display the duplicate post links. */ $display_links = \apply_filters( 'duplicate_post_show_link', $this->is_current_user_allowed_to_copy() && $this->is_post_type_enabled( $post->post_type ), $post ); return ! $this->is_rewrite_and_republish_copy( $post ) && $display_links; } /** * Determines if the Rewrite & Republish link for the post should be displayed. * * @param WP_Post $post The post object. * * @return bool Whether the links should be displayed. */ public function should_rewrite_and_republish_be_allowed( WP_Post $post ) { return $post->post_status === 'publish' && ! $this->is_rewrite_and_republish_copy( $post ) && ! $this->has_rewrite_and_republish_copy( $post ); } /** * Determines whether the passed post type is public and shows an admin bar. * * @param string $post_type The post_type to copy. * * @return bool Whether or not the post can be copied to a new draft. */ public function post_type_has_admin_bar( $post_type ) { $post_type_object = \get_post_type_object( $post_type ); if ( empty( $post_type_object ) ) { return false; } return $post_type_object->public && $post_type_object->show_in_admin_bar; } /** * Determines whether a Rewrite & Republish copy can be republished. * * @param WP_Post $post The post object. * * @return bool Whether the Rewrite & Republish copy can be republished. */ public function is_copy_allowed_to_be_republished( WP_Post $post ) { return \in_array( $post->post_status, [ 'dp-rewrite-republish', 'private' ], true ); } /** * Determines if the post has a trashed copy intended for Rewrite & Republish. * * @param WP_Post $post The post object. * * @return bool Whether the post has a trashed copy intended for Rewrite & Republish. */ public function has_trashed_rewrite_and_republish_copy( WP_Post $post ) { $copy_id = \get_post_meta( $post->ID, '_dp_has_rewrite_republish_copy', true ); if ( ! $copy_id ) { return false; } $copy = \get_post( $copy_id ); return ( $copy && $copy->post_status === 'trash' ); } }