192 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Thickbox
 | |
|  *
 | |
|  * @package     EDD
 | |
|  * @subpackage  Admin
 | |
|  * @copyright   Copyright (c) 2018, Easy Digital Downloads, LLC
 | |
|  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 | |
|  * @since       1.0
 | |
|  */
 | |
| 
 | |
| // Exit if accessed directly
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| /**
 | |
|  * Adds an "Insert Download" button above the TinyMCE Editor on add/edit screens.
 | |
|  *
 | |
|  * @since 1.0
 | |
|  * @return string "Insert Download" Button
 | |
|  */
 | |
| function edd_media_button() {
 | |
| 
 | |
| 	// Bail if not a post new/edit screen
 | |
| 	if ( ! edd_is_insertable_admin_page() ) {
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	// Setup the icon
 | |
| 	$icon = '<span class="wp-media-buttons-icon dashicons dashicons-download" id="edd-media-button"></span>';
 | |
| 	$text = sprintf( __( 'Insert %s', 'easy-digital-downloads' ), edd_get_label_singular() );
 | |
| 
 | |
| 	// Output the thickbox button
 | |
| 	echo '<a href="#TB_inline?&width=600&height=300&inlineId=choose-download" name="' . esc_attr( $text ) . '" class="thickbox button edd-thickbox">' . $icon . esc_html( $text ) . '</a>';
 | |
| }
 | |
| add_action( 'media_buttons', 'edd_media_button', 11 );
 | |
| 
 | |
| /**
 | |
|  * Admin Footer For Thickbox
 | |
|  *
 | |
|  * Prints the footer code needed for the Insert Download
 | |
|  * TinyMCE button.
 | |
|  *
 | |
|  * @since 1.0
 | |
|  * @global $pagenow
 | |
|  * @global $typenow
 | |
|  * @return void
 | |
|  */
 | |
| function edd_admin_footer_for_thickbox() {
 | |
| 
 | |
| 	// Bail if not a post new/edit screen
 | |
| 	if ( ! edd_is_insertable_admin_page() ) {
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	// Styles
 | |
| 	$styles = array(
 | |
| 		'text link' => esc_html__( 'Link',   'easy-digital-downloads' ),
 | |
| 		'button'    => esc_html__( 'Button', 'easy-digital-downloads' )
 | |
| 	);
 | |
| 
 | |
| 	// Colors
 | |
| 	$colors = edd_get_button_colors();
 | |
| 
 | |
| 	?>
 | |
| 
 | |
| 	<script type="text/javascript">
 | |
| 
 | |
| 		/**
 | |
| 		 * Used to insert the download shortcode with attributes
 | |
| 		 */
 | |
| 		function insertDownload() {
 | |
| 			var id     = jQuery('#products').val(),
 | |
| 				direct = jQuery('#select-edd-direct').val(),
 | |
| 				style  = jQuery('#select-edd-style').val(),
 | |
| 				color  = jQuery('#select-edd-color').is(':visible') ? jQuery( '#select-edd-color').val() : '',
 | |
| 				text   = jQuery('#edd-text').val() || '<?php _e( 'Purchase', 'easy-digital-downloads' ); ?>';
 | |
| 
 | |
| 			// Return early if no download is selected
 | |
| 			if ( '' === id ) {
 | |
| 				alert('<?php _e( 'You must choose a download', 'easy-digital-downloads' ); ?>');
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			if ( '2' === direct ) {
 | |
| 				direct = ' direct="true"';
 | |
| 			} else {
 | |
| 				direct = '';
 | |
| 			}
 | |
| 
 | |
| 			// Send the shortcode to the editor
 | |
| 			window.send_to_editor('[purchase_link id="' + id + '" style="' + style + '" color="' + color + '" text="' + text + '"' + direct +']');
 | |
| 		}
 | |
| 
 | |
| 		jQuery(document).ready(function ($) {
 | |
| 			$('#select-edd-style').change(function () {
 | |
| 				( $(this).val() === 'button' )
 | |
| 					? $('#edd-color-choice').show()
 | |
| 					: $('#edd-color-choice').hide();
 | |
| 			});
 | |
| 		});
 | |
| 	</script>
 | |
| 
 | |
| 	<div id="choose-download" style="display: none;">
 | |
| 		<div id="choose-download-wrapper">
 | |
| 			<div class="wrap">
 | |
| 				<table class="form-table">
 | |
| 					<tbody>
 | |
| 						<tr>
 | |
| 							<th scope="row" valign="top">
 | |
| 								<?php echo edd_get_label_singular(); ?>
 | |
| 							</th>
 | |
| 							<td>
 | |
| 								<?php echo EDD()->html->product_dropdown( array( 'chosen' => true ) ); ?>
 | |
| 								<p class="description"><?php esc_html_e( 'Choose an existing product', 'easy-digital-downloads' ); ?></p>
 | |
| 							</td>
 | |
| 						</tr>
 | |
| 
 | |
| 						<?php if ( edd_shop_supports_buy_now() ) : ?>
 | |
| 							<tr>
 | |
| 								<th scope="row" valign="top">
 | |
| 									<?php esc_html_e( 'Behavior', 'easy-digital-downloads' ); ?>
 | |
| 								</th>
 | |
| 								<td>
 | |
| 									<select id="select-edd-direct">
 | |
| 										<option value="1"><?php _e( 'Add to Cart', 'easy-digital-downloads' ); ?></option>
 | |
| 										<option value="2"><?php _e( 'Direct Link', 'easy-digital-downloads' ); ?></option>
 | |
| 									</select>
 | |
| 									<p class="description"><?php esc_html_e( 'How do you want this to work?', 'easy-digital-downloads' ); ?></p>
 | |
| 								</td>
 | |
| 							</tr>
 | |
| 						<?php endif; ?>
 | |
| 
 | |
| 						<tr>
 | |
| 							<th scope="row" valign="top">
 | |
| 								<?php esc_html_e( 'Style', 'easy-digital-downloads' ); ?>
 | |
| 							</th>
 | |
| 							<td>
 | |
| 								<select id="select-edd-style">
 | |
| 									<?php
 | |
| 										foreach ( $styles as $style => $label ) {
 | |
| 											echo '<option value="' . esc_attr( $style ) . '">' . esc_html( $label ) . '</option>';
 | |
| 										}
 | |
| 									?>
 | |
| 								</select>
 | |
| 								<p class="description"><?php esc_html_e( 'Choose between a Button or a Link', 'easy-digital-downloads' ); ?></p>
 | |
| 							</td>
 | |
| 						</tr>
 | |
| 
 | |
| 						<?php if ( ! empty( $colors ) ) : ?>
 | |
| 							<tr id="edd-color-choice" style="display: none;">
 | |
| 								<th scope="row" valign="top">
 | |
| 									<?php esc_html_e( 'Color', 'easy-digital-downloads' ); ?>
 | |
| 								</th>
 | |
| 								<td>
 | |
| 									<select id="select-edd-color">
 | |
| 										<?php
 | |
| 											foreach ( $colors as $key => $color ) {
 | |
| 												echo '<option value="' . str_replace( ' ', '_', $key ) . '">' . $color['label'] . '</option>';
 | |
| 											}
 | |
| 										?>
 | |
| 									</select>
 | |
| 									<p class="description"><?php esc_html_e( 'Choose the button color', 'easy-digital-downloads' ); ?></p>
 | |
| 								</td>
 | |
| 							</tr>
 | |
| 						<?php endif; ?>
 | |
| 
 | |
| 						<tr>
 | |
| 							<th scope="row" valign="top">
 | |
| 								<?php esc_html_e( 'Text', 'easy-digital-downloads' ); ?>
 | |
| 							</th>
 | |
| 							<td>
 | |
| 								<input type="text" class="regular-text" id="edd-text" value="" placeholder="<?php _e( 'View Product', 'easy-digital-downloads' ); ?>"/>
 | |
| 								<p class="description"><?php esc_html_e( 'This is the text inside the button or link', 'easy-digital-downloads' ); ?></p>
 | |
| 							</td>
 | |
| 						</tr>
 | |
| 					</tbody>
 | |
| 				</table>
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="submit-wrapper">
 | |
| 				<div>
 | |
| 					<a id="edd-cancel-download-insert" class="button" onclick="tb_remove();"><?php esc_html_e( 'Cancel', 'easy-digital-downloads' ); ?></a>
 | |
| 					<input type="button" id="edd-insert-download" class="button-primary" value="<?php printf( esc_html__( 'Insert %s', 'easy-digital-downloads' ), esc_html( edd_get_label_singular() ) ); ?>" onclick="insertDownload();" />
 | |
| 				</div>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	</div>
 | |
| 
 | |
| <?php
 | |
| }
 | |
| add_action( 'admin_footer', 'edd_admin_footer_for_thickbox' );
 |