[WORDPRESS로 환자 DATABASE 만들기] #3. 환자별 자료 확인, 자료 삭제

2019.02.09: 이 포스팅은 WP 4를 기준으로 만들어졌던 것으로 WP 5에서는 테스트되지 않았습니다.

 

준비작업

Untitled-1

#0. 작업을 쉽게 하기 위해 메뉴를 만들었다.

Untitled-3

먼저 적어보자면, Edit를 해봤더니 63이 뜬다. 알고보니 이건 pid라고 워드프레스 내부적으로 post의 id값이 넘어온건데, 두번째 포스팅에서 내가 사용한 변수인 $pid랑 겹쳤다. 그래서 포스팅 내용은 수정했다..) >> 결론은 $pid라는 변수 이름은 함부로 쓰지 말자

환자 자료의 수정 / 삭제 기능

UI 수정

Edit / Delete 추가하는 것을 시작하면

#1. 자료를 몇개 추가하고, 여기에 편집과 수정기능을 추가

Untitled-2

content-medicaldata.php

	<td><?php
			edit_post_link(
				sprintf(
					/* translators: %s: Name of current post */
					__( 'Edit<span class="screen-reader-text"> "%s"</span>', 'twentysixteen' ),
					get_the_title()
				),
				'<span class="edit-link">',
				'</span>'
			);
		?>
	</td>
	<td>
	<?php 
	$currnet_user = wp_get_current_user();
	<?php if ($post->post_author == get_current_user_id()/*$current_user->ID*/) { ?><p><a onclick="return confirm('Are you SURE you want to delete this Wish?')" href="<?php echo get_delete_post_link( $post->ID ) ?>">삭제</a></p><?php } ?>
     </td>

그러면

ondelete

음..조잡한 UI다.

아무튼 소스를 보면 $current_user->ID가 안먹는다. 이상하다. 레퍼런스에서는 사용할 수 있는 변수값인데.

이부분 나중에 관리자가 아닌 ID로 다시 테스트해봐야한다. 


Custom Query 사용

이번엔 ID별로 등록된 자료를 계산해보자

content-patients.php 상단에 다음 소스를 추가.

이왕이면 지난번 포스팅에서 작성된 $pts_id = get_post_meta($post->ID, ‘pts_id’)[0]; 밑에다 두자. 그래야 $pts_id 라는 변수를 이용할 수 있으니.

$args = array(
				'post_type'  => 'medicaldata',				
				'meta_query' => array(
					array(
						'key'     => 'pts_id',
						'value'   => $pts_id,						
					),
				),
			);
			$query = new WP_Query( $args );

핵심은 meta 값으로 환자 ID를 맞추는 것이다.

그리고 HTML 코드 수정

<td><?=$pts_id?> (<?=$query->found_posts?>)</td>

Untitled-4

완료.


다음 포스팅에서는 & References

  •  pts_id 와 pts_rec_id가 동일한 data만 추출하는 것. 그래야 그 환자의 자료만 볼 수 있을테니까.
  • 레코드 삭제버튼
  • 환자 데이터를 삭제할때 하위 레코들도 함께 삭제하기(귀찮을 것 같다)
  • 환자등록시 주민등록번호를 받아서 암호화 시켜 저장하고, 주민등록번호로 환자 record를 찾을 수 있게 하기.
  • 환자ID를 통한 환자 데이터 세부조회, 날짜별 정렬, 글쓴이 표시 등등.
  • DB를 엑셀(xml)로 export하기
    • https://paulund.co.uk/access-database-outside-wordpress
    • http://wordpress.stackexchange.com/questions/26254/how-to-include-wp-load-php-from-any-location
    • https://paulund.co.uk/creating-custom-tables-wordpress-plugin-activation
0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.