/**
 * Customize Timber display for non-subscribing users
 * Relies on Vimeography Pro "Timber" theme, as well as MemberPress (for "rules") and
 * Advanced Custom Fields
 */
add_action( 'admin_head', 'custom_player_container' ) ;
add_action( 'wp_head', 'custom_player_container' ) ;
function custom_player_container() {
  
  $rules = 'rules:' . get_field( 'memberpress_access', 'option' ) ;
  if ( ! ( current_user_can( 'mepr-active', $rules  ) ) ) {
  
    $replacement =       get_field( 'replacement_for_video', 'option' ) ;
    $line_1 =            get_field( 'line_1', 'option' ) ;
    $line_2_link_text =  get_field( 'line_2_link_text', 'option' ) ;
    $line_2_link =       get_field( 'line_2_link', 'option' ) ;
    $line_2_text =       get_field( 'line_2_text', 'option' ) ;
    $line_3 =            get_field( 'line_3', 'option' ) ;
    $design_class =      1 == get_field( 'replacement_or_pre-designed', 'option' ) ? ' replacement' : ' pre-designed' ;
    ob_start() ;
    
    ?>
    
    <script type="text/x-template" id="vimeography-component-modal-modern-touch">
  <div class="vimeography-modal-modern-touch">      
  <div class="vimeography-header">        
    <h2 class="vimeography-title">{{activeVideo.name}}</h2>        
    <div class="vimeography-controls">          
      <router-link class="vimeography-next" :to="nextVideoUrl" exact exact-active-class="vimeography-next-active">            
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="4" y1="12" x2="20" y2="12"></line><polyline points="14 6 20 12 14 18"></polyline></svg>	
      </router-link>          
      <a href="#" @click="$modal.hide(modalId)">            
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x">
          <line x1="18" y1="6" x2="6" y2="18"></line>
          <line x1="6" y1="6" x2="18" y2="18"></line>
        </svg>          
      </a>        
    </div>      
  </div>      
  <!-- BEGIN REPLACE INJECTED JS --> 
     <div class="vimeography-player-container" itemprop="video" itemscope itemtype="http://schema.org/VideoObject">  
      <meta itemprop="name" :content="this.activeVideo.name" />    
      <meta itemprop="description" :content="this.activeVideo.description" />    
      <meta itemprop="thumbnailUrl" :content="this.activeVideo.thumbnail_large" />    
      <meta itemprop="uploadDate" :content="this.activeVideo.created_time" />    
      <div class="vimeography-no-player">  
        <div class="unauthorized-message<?php echo $design_class ; ?>">  
     
    <?php 
     
    if ( 2 == get_field( 'replacement_or_pre-designed', 'option') ) { ?>
      <!-- REPLACE WITH ACF VARS -->
          <p><?php echo $line_1 ; ?></p>  
          <h3>
            <a href="<?php echo $line_2_link ; ?>" target="_blank" >
              <?php echo $line_2_link_text ; ?>
            </a><?php echo $line_2_text ; ?>
          </h3> 
          <p><?php echo $line_3 ; ?></p>
    
    <?php } else { 
    
      echo '<!-- REPLACE WITH ACF WYSIWYG OUTPUT -->' ;
      echo $replacement ; 
    
    } ?>
    
        </div>
      </div>
    </div>
  <!--/ END REPLACE INJECTED JS -->		
  <div class="vimeography-description" v-html="activeVideo.description">      </div>      
  <download-link :video="activeVideo"></download-link>      
  <span class="vimeography-plays" v-if="activeVideo.stats.plays">({{activeVideo.stats.plays}} views) </span>      
  <span class="vimeography-tags" v-if="this.tags.length > 0">Filed under {{this.tags}}</span>    
</div>
 
  </script>
  <?php 
    
    echo ob_get_clean() ;
    
  }
  
}
Default Vimeography Player:
Customized Player Container for Non-Subscribers:
Advanced Custom Fields Back End: