Advertisement
CodeDropz

Display Upload Folder Links - Dropbox

Mar 8th, 2024 (edited)
968
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.43 KB | None | 0 0
  1. add_action('wpcf7_before_send_mail', function( $wpcf7 ){
  2.     if( WPCF7_Submission::get_instance() ){
  3.         $mail = $wpcf7->prop('mail');
  4.         $fields = $wpcf7->scan_form_tags( array( 'type' => array('mfile', 'mfile*') ) );
  5.         $folder = '';
  6.        
  7.         // For dropbox
  8.         $dropbox = get_option('drag_n_drop_storage_api_dropbox');
  9.         $access_tokens = ( isset( $dropbox['dropbox']['tokens']['access_token'] ) ? $dropbox['dropbox']['tokens']['access_token'] : '' );
  10.        
  11.         if( $uploader = wp_list_pluck( $fields, 'name' ) ){
  12.             foreach( $uploader as $upload ){
  13.                 if( isset( $_POST[ $upload ] ) ){
  14.                     $folder = dirname( $_POST[ $upload ][0] );
  15.                     break;
  16.                 }
  17.             }
  18.         }
  19.  
  20.         if( $folder ){
  21.            
  22.             $data = array(
  23.                 'path' => $folder,
  24.                 'settings' => ['requested_visibility' => 'public']
  25.             );
  26.  
  27.             $response = wp_remote_post( 'https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings', array(
  28.                 'headers' => array( 'Authorization' => 'Bearer '.$access_tokens, 'Content-Type' => 'application/json' ),
  29.                 'body' => json_encode( $data ),
  30.                 'timeout' => 20
  31.             ));
  32.            
  33.             if( ! is_wp_error( $response ) ){
  34.                 $json_response = json_decode( wp_remote_retrieve_body( $response ), true);
  35.                 if( isset( $json_response['url'] ) ){
  36.                     $mail['body'] = str_replace('[your-name__folder]', $json_response['url'], $mail['body'] );
  37.                 }
  38.             }
  39.            
  40.         }
  41.  
  42.         $wpcf7->set_properties( array("mail" => $mail) );
  43.     }
  44.    
  45.     return $wpcf7;
  46. }, 10, 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement