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

     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 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기