코스모스팜 회원관리 문자 질문입니다.

     add_action('woocommerce_order_status_completed', 'my_order_status_completed_sms', 10, 1);
     function my_order_status_completed_sms($order_id){
         $purchaser = wp_get_current_user();
         $phone = get_user_meta(get_current_user_id(), 'billing_phone', true);
         
         $order = wc_get_order($order_id);
         $items = $order->get_items();
         
         foreach ($items as $item){
             $product_name = $item->get_name();
             cosmosfarm_members_sms_send($phone, $purchaser->last_name . '[MF SOUND] '.$product_name.'의 결제가 완료되었습니다.');
         }
         }

 

안녕하세요? 위와 같은 코드를 사용하여 문자 시스템을 이용중에 있습니다.(토스트)

문자가 길어지면 자동으로 MMS 로 발송하는줄 알았는데 그러진 않더라구요. 그냥 발송 요청을 안하는거 같습니다.

제가 맞다면 문자 내용이 길때 MMS로 자동 변경할순 없을까요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    현재 90 바이트(한글 45자) 초과 시에 장문 문자로 보내고 있습니다.

    FTP로 접속해서 /wp-content/plugins/cosmosfarm-members/class/Cosmosfarm_Members_Sms.class.php 파일에

    아래의 코드가 장문 문자로 보낼지 체크하는 코드입니다.

    if(strlen(iconv('utf8', 'euckr', $content)) > 90){
    	$type = 'L';
    }
    else{
    	$type = '';
    }
    $body['smsType'] = base64_encode($type); // LMS일경우 L

     

    만약, 장문 문자 전송이 정상적으로 되지 않을 경우

    코스모스팜 회원관리 플러그인을 최신 버전으로 업데이트해보시겠어요?

     

    KBoard(케이보드) 플러그인이 설치되어 있다면,

    워드프레스 관리자 -> 스토어 메뉴에서 설치하기 버튼을 눌러주시면 업데이트가 완료됩니다.

     

    KBoard(케이보드) 플러그인이 설치되지 않았다면,

    FTP로 접속해서 파일을 업로드(덮어쓰기) 해주셔야 합니다.

    /wp-content/plugins/cosmosfarm-members 경로에 최신버전 파일을 업로드(덮어쓰기) 해주세요.

     

    최신 버전에서도 문제가 된다면,

    아래 관련 링크도 참고해보세요.

    https://www.cosmosfarm.com/threads/document/23688

    고맙습니다.

  •      add_action('wpcf7_mail_sent','send_sms_file_one',10,1);
         function send_sms_file_one($form){
             if ($form->id() == 6035) {
                 $submission = WPCF7_Submission::get_instance();
                 if ( $submission ) {
                     $cf7_data = $submission->get_posted_data();
                     cosmosfarm_members_sms_send(
                                                 $cf7_data['tel-689'],
                                                 '[MF SOUND] 제작 요청하신 작업물이 발송되었습니다. 수신 확인이 안되는 경우 스팸 및 프로모션 확인 부탁드립니다. https://mfsound.co.kr'
                                                 );
                 }
             }
         }

    안녕하세요.

    해당 코드가 링크주신 스레드처럼 단문길이까지만 발송이 됩니다. 해당 스레드의 멘 마지막 내용처럼 코드를 변경했음에도 불구하고 같은 현상이 일어납니다. 

    버전은 최신버전이 맞습니다.

    https://www.dropbox.com/s/4shfiu8hpgii7cc/Cosmosfarm_Members_Sms.class.php?dl=0

    해당 클래스 파일 같이 첨부해드립니다.

    왜 장문으로 발송이 안되는걸까요? ㅠ.ㅠ

  • 안녕하세요.

    전체 코드를 올려주시는 것보다 수정하신 코드를 올려주시면

    보다 더 정확한 답변을 받으실 수 있습니다.

     

    아래 링크 답변에 iconv() 함수가 제대로 동작하지 않는 문제가 있어

    다른 코드 적용 방법도 안내되어 있습니다.

    https://www.cosmosfarm.com/threads/document/23688#document-answer-23908

    확인해보시겠어요?

     

    그래도 해결되지 않으신다면,

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

  • 	public function send_execute_toast_cloud($phone, $content){
    		$option = get_cosmosfarm_members_option();
    		if(!$this->is_active()){
    			return array('result'=>'error', 'message'=>'SMS 보내기 설정이 사용중지 되었습니다.');
    		}
    		
    		if(strlen(iconv('utf8', 'euckr', $content)) > 90){
    			$sender = 'mms';
    			$title = mb_substr($content, 0, 40);
    			$args = array(
    				'headers' => array('content-type' => 'application/json;charset=UTF-8'),
    				'body'    => json_encode(array(
    					'title'         => $title,
    					'body'          => $content,
    					'sendNo'        => "{$option->sms_caller1}{$option->sms_caller2}{$option->sms_caller3}",
    					'recipientList' => array(array('recipientNo' => $phone))
    				))
    			);
    		}
    		else{
    			$sender = 'sms';
    			$args = array(
    				'headers' => array('content-type' => 'application/json;charset=UTF-8'),
    				'body'    => json_encode(array(
    					'body'          => $content,
    					'sendNo'        => "{$option->sms_caller1}{$option->sms_caller2}{$option->sms_caller3}",
    					'recipientList' => array(array('recipientNo' => $phone))
    				))
    			);
    		}
    		
    		$response = wp_safe_remote_post("https://api-sms.cloud.toast.com/sms/v2.0/appKeys/{$option->sms_toast_cloud_appkey}/sender/$sender", $args);

     

    해당 링크 글대로 수정한 코드입니다. 맨 하단 'response' 줄 빼고는 코스모스팜 멤버 2.8.6 버전이랑 동일해서 하단만 수정했는데 역시 계속 짤려서 발송됩니다.

     

    add_action('wpcf7_mail_sent','send_sms_file_one',10,1);
         function send_sms_file_one($form){
             if ($form->id() == 6035) {
                 $submission = WPCF7_Submission::get_instance();
                 if ( $submission ) {
                     $cf7_data = $submission->get_posted_data();
                     cosmosfarm_members_sms_send(
                                                 $cf7_data['tel-689'],
                                                 '[MF SOUND] 제작 요청하신 작업물이 발송되었습니다. 제작 요청하신 작업물이 발송되었습니다.제작 요청하신 작업물이 발송되었습니다. TESTTESTTEESTTESTTEST https://mfsound.co.kr'
                                                 );
                 }
             }
         }

     현재 function.php 에서 쓰고 있는 코드는 위와 같습니다.
    무엇을 수정해야될까요?

  • 안녕하세요.

    토스트 클라우드 SMS 서비스를 이용 중이신지요?

    카페24 SMS 서비스를 이용 중이시라면

    send_execute_cafe24 함수 쪽도 수정해보시겠어요?

     

    안내해드린 링크에 올려주신 코드 중

    아래의 코드를

    if(strlen(iconv('utf8', 'euckr', $content)) > 90){

    아래의 코드로 교체하는 코드도 안내되어 있습니다.

    if(strlen(mb_convert_encoding($content, "EUC-KR", "UTF-8")) > 90){

     

    만약, 위의 코드로 교체한 후 정상적으로 동작한다면

    서버 관리자 또는 웹호스팅 업체에 iconv() 함수 동작을 테스트 요청을 해보셔야 할 듯합니다.

     

    코드 교체 후에도 정상적으로 동작하지 않는다면,

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기