您可以根据需要使用以下代码。它会将网站/文件url添加到购物车页面、结帐页面和后端的订单摘要中。
您需要在产品页面中为网站/文件url创建一个自定义字段。https://prnt.sc/pa7fyg
该url/链接将显示在:
“添加到购物车”按钮上方的“产品详细信息”页面中。https://prnt.sc/pa7h9s 购物车页面https://prnt.sc/pa7hxb签出页面https://prnt.sc/pa7j43订单摘要前端/后端https://prnt.sc/pa7jsp https://prnt.sc/pa7k70您可以根据需要更改文本/标签。
/*
# add link filed above add to cart button
*/
function output_web_file_url_field() {
global $product;
$id = $product->get_id();
$web_file_url = get_post_meta($id,"file_website_url",true);
if(!empty($web_file_url)){
?>
<div class="web-file-url-field">
<a href="<?php echo $web_file_url;?>" target="_blank"/>Website/file</a>
<input type="hidden" name="web-file-url" value="<?php echo $web_file_url;?>">
</div>
<?php
}
}
add_action( \'woocommerce_before_add_to_cart_button\', \'output_web_file_url_field\', 10 );
/*
# Add Link to cart item.
*/
function web_file_url_to_cart_item( $cart_item_data, $product_id, $variation_id ) {
$web_file_url = filter_input( INPUT_POST, \'web-file-url\' );
if ( empty( $web_file_url ) ) {
return $cart_item_data;
}
$cart_item_data[\'web-file-url\'] = $web_file_url;
return $cart_item_data;
}
add_filter( \'woocommerce_add_cart_item_data\', \'web_file_url_to_cart_item\', 10, 3 );
/*
# Display link in cart
*/
function display_web_file_url_cart( $item_data, $cart_item ) {
if ( empty( $cart_item[\'web-file-url\'] ) ) {
return $item_data;
}
$item_data[] = array(
\'key\' => __( \'Website/file\', \'iconic\' ),
\'value\' => sprintf( __( \'<a href="%s" target="_blank">Link</a>\'), $cart_item[\'web-file-url\']),
\'display\' => \'\',
);
return $item_data;
}
add_filter( \'woocommerce_get_item_data\', \'display_web_file_url_cart\', 10, 2 );
/*
# Add Link to order.
*/
function add_web_file_url_to_order_items( $item, $cart_item_key, $values, $order ) {
if ( empty( $values[\'web-file-url\'] ) ) {
return;
}
$item->add_meta_data( __( \'Website_file_url\', \'iconic\' ), sprintf( __( \'<a href="%s" target="_blank">Link</a>\'), $values[\'web-file-url\']) );
}
add_action( \'woocommerce_checkout_create_order_line_item\', \'add_web_file_url_to_order_items\', 10, 4 );
我已经测试了代码,它正在工作。如果这对你有用,请告诉我!