سلام
من در سایتم از افزونه ایزی دیجیتال دانلود برای فروش آموزش های ویدیویی استفاده میکنم، ولی مشکلی که وجود داره بعد از خرید محصول در قسمت دانلودها وقتی روی لینک کلیک مشه ، ویدئوی آموزشی در همان صفحه لود و با پلیر مرورگر باز میشه ، من میخواهم بعد از کلیک روی لینک ، ویدیو در تب جدید مرورگر باز بشه ، چطور میشه target=”_blank” را به تگ a در سورس کدهای افزونه edd اضافه کرد که این عمل در تمام لینک ها اعمال شود؟
سلام
برای افزودن target="_blank"
به تمام لینکها در افزونه Easy Digital Downloads (EDD)، شما میتوانی از فیلترها و اکشنهای موجود در WordPress و افزونه EDD استفاده کنید.
استفاده از فیلترهای WordPress:
ابتدا، میتوانی از فیلتر the_content
استفاده کنی تا لینکها را به صورت دلخواه تغییر بدی. مثال:
// functions.php
function modify_links_target_blank($content) {
$content = preg_replace('/<a(.*?)href=[\'"]([^\'"]+)[\'"](.*?)>/i', '<a$1href="$2"$3 target="_blank">', $content);
return $content;
}
add_filter('the_content', 'modify_links_target_blank');
این کد با استفاده از یک عبارت منظم، تمام لینکها را با target="_blank"
جایگزین میکنه.
استفاده از اکشنهای EDD:
افزونه EDD اکشنها یا فیلترهای خاصی برای افزودن لینکها دارد، میتوانی از آنها برای اعمال target="_blank"
استفاده کنی.
به عنوان مثال فرض کن افزونه EDD از اکشن edd_purchase_link_end
برای نمایش لینک خرید استفاده میکنه، میتوانی به این شکل فیلتر اعمال کنی:
// functions.php یا یک فایل قالب
function modify_edd_purchase_link($purchase_link) {
$purchase_link = str_replace('<a', '<a target="_blank"', $purchase_link);
return $purchase_link;
}
add_filter('edd_purchase_link_end', 'modify_edd_purchase_link');
می تونی به دایکیومنتی افزونه EDD مراجعه کنی و از اکشنها و فیلترهای مناسب برای نیازهای خاص خودت استفاده کنی.
موفق باشی
ببخشید که من مبتدی هستم این تغییرات باید در فایل function.php قالب باید اعمال بشه یا فایل افزونه edd?
<?php if( ! empty( $_GET['edd-verify-success'] ) ) : ?>
<p class="edd-account-verified edd_success">
<?php _e( 'Your account has been successfully verified!', 'easy-digital-downloads' ); ?>
</p>
<?php
endif;
/**
* This template is used to display the download history of the current user.
*/
$purchases = edd_get_users_purchases( get_current_user_id(), 20, true, 'any' );
if ( $purchases ) :
do_action( 'edd_before_download_history' ); ?>
<table id="edd_user_history" class="edd-table">
<thead>
<tr class="edd_download_history_row">
<?php do_action( 'edd_download_history_header_start' ); ?>
<th class="edd_download_download_name"><?php _e( 'Download Name', 'easy-digital-downloads' ); ?></th>
<?php if ( ! edd_no_redownload() ) : ?>
<th class="edd_download_download_files"><?php _e( 'Files', 'easy-digital-downloads' ); ?></th>
<?php endif; //End if no redownload?>
<?php do_action( 'edd_download_history_header_end' ); ?>
</tr>
</thead>
<?php foreach ( $purchases as $payment ) :
$downloads = edd_get_payment_meta_cart_details( $payment->ID, true );
$purchase_data = edd_get_payment_meta( $payment->ID );
$email = edd_get_payment_user_email( $payment->ID );
if ( $downloads ) :
foreach ( $downloads as $download ) :
// Skip over Bundles. Products included with a bundle will be displayed individually
if ( edd_is_bundled_product( $download['id'] ) )
continue; ?>
<tr class="edd_download_history_row">
<?php
$price_id = edd_get_cart_item_price_id( $download );
// Get price ID of product with variable prices included in Bundle
if ( ! empty( $download['in_bundle'] ) && edd_has_variable_prices( $download['id'] ) ) {
$price_id = edd_get_bundle_item_price_id( $download['id'] );
}
$download_files = edd_get_download_files( $download['id'], $price_id );
$name = $download['name'];
// Retrieve and append the price option name
if ( ! empty( $price_id ) && 0 !== $price_id ) {
$name .= ' - ' . edd_get_price_option_name( $download['id'], $price_id, $payment->ID );
}
do_action( 'edd_download_history_row_start', $payment->ID, $download['id'] );
?>
<td class="edd_download_download_name"><?php echo esc_html( $name ); ?></td>
<?php if ( ! edd_no_redownload() ) : ?>
<td class="edd_download_download_files">
<?php
if ( 'publish' == $payment->post_status ) :
if ( $download_files ) :
foreach ( $download_files as $filekey => $file ) :
$download_url = edd_get_download_file_url( $purchase_data['key'], $email, $filekey, $download['id'], $price_id );
?>
<div class="edd_download_file">
<a href="<?php echo esc_url( $download_url ); ?>" class="edd_download_file_link">
<?php echo edd_get_file_name( $file ); ?>
</a>
</div>
<?php do_action( 'edd_download_history_files', $filekey, $file, $download['id'], $payment->ID, $purchase_data );
endforeach;
else :
_e( 'No downloadable files found.', 'easy-digital-downloads' );
endif; // End if payment complete
else : ?>
<span class="edd_download_payment_status">
<?php printf( __( 'Payment status is %s', 'easy-digital-downloads' ), edd_get_payment_status( $payment, true) ); ?>
</span>
<?php
endif; // End if $download_files
?>
</td>
<?php endif; // End if ! edd_no_redownload()
do_action( 'edd_download_history_row_end', $payment->ID, $download['id'] );
?>
</tr>
<?php
endforeach; // End foreach $downloads
endif; // End if $downloads
endforeach;
?>
</table>
<?php
echo edd_pagination(
array(
'type' => 'download_history',
'total' => ceil( edd_count_purchases_of_customer() / 20 ) // 20 items per page
)
);
?>
<?php do_action( 'edd_after_download_history' ); ?>
<?php else : ?>
<p class="edd-no-downloads"><?php _e( 'You have not purchased any downloads', 'easy-digital-downloads' ); ?></p>
<?php endif; ?>
کدهای های بالا فایل .history-download.php در پوشه template افزونه edd است امکان داره بفرمایید در کدام قسمت target=”_blank” باید اضافه شود؟
سلام
کد های بالا را که بهت دادم رو در child theme فایل functions.php و یا قالب اصلی ادد کن
موفق باشید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟