我一直在尝试为客户网站拼凑一个小代码,以包含一个简单的自动存款功能。我对PHP非常基础,我将从2009年开始学习VB知识,所以让我放松一下。试图利用这个项目来获取一些知识。
The Goal
在产品页面上创建一个复选框,如果选中该复选框,则该产品还将显示产品价格下50%的存款金额,在购物车中设置存款条件的项目将默认当前订单付款为总金额的50%。在有押金的订单后,使用“创建新订单”;存款余额;。
The Problem
它只起了一半作用。整个网站都在更新价格,但我无法让复选框起作用。我还没有尝试用剩余部分实施新秩序。
我尝试了复选框的if语句:
function custom_fields_save_seo( $post_id ){
$woocommerce_checkbox = ( $_POST[\'deposit_checkbox\'] );
if (isset ($woocommerce_checkbox))
update_post_meta( $post_id, \'_deposit_checkbox\', true ) ;
}
这是我到目前为止所做的,它成功地改变了整个网站的产品价格。
function add_custom_fields_seo() {
global $woocommerce, $post;
// woocommerce_wp_text_input(
// array(
// \'id\' => \'_deposit_price\',
// \'label\' => __( \'Deposit price($)\', \'woocommerce\' ),
// \'placeholder\' => \'15\',
// \'desc_tip\' => \'true\',
// \'description\' => __( \'Enter the custom deposit price here.\', \'woocommerce\' )
// )
// );
woocommerce_wp_checkbox(
array(
\'id\' => \'deposit_checkbox\',
\'label\' => __(\'Agreegation Policy.\'),
\'required\' => false,
));
}
add_action( \'woocommerce_product_options_general_product_data\', \'add_custom_fields_seo\');
function custom_fields_save_seo( $post_id ){
$woocommerce_text_field = sanitize_text_field( $_POST[\'_deposit_price\'] );
if( is_numeric( $woocommerce_text_field ) || empty( $woocommerce_text_field ) ){
update_post_meta( $post_id, \'_deposit_price\', esc_attr( $woocommerce_text_field ) );
}
}
add_action( \'woocommerce_process_product_meta\', \'custom_fields_save_seo\' );
function filter_woocommerce_get_price( $price, $product ){
$product_id = $product->get_id();
$deposit_price = get_post_meta( $product_id,\'_phive_book_price\' / 2, true );
if( ! empty( $deposit_price ) ) {
return $deposit_price;
}
return 0;
}
add_filter( \'woocommerce_get_price\', \'filter_woocommerce_get_price\', 10, 2 );
function filter_woocommerce_get_price_html( $price, $product ){
$product_id = $product->get_id();
$product_price = get_post_meta( $product_id, \'_phive_book_price\', true );
$deposit_price = $product_price / 2;
if( ! empty( $deposit_price ) ) {
return wc_price($product_price) . \' <i>Deposit: \' . wc_price($deposit_price) . \'</i>\';
}
return wc_price( $product_price );
}
add_filter( \'woocommerce_get_price_html\', \'filter_woocommerce_get_price_html\', 10, 2 );
add_filter( \'woocommerce_cart_product_price\', \'filter_woocommerce_get_price_html\', 10, 2 );
function filter_woocommerce_cart_product_subtotal( $product_subtotal, $product, $quantity ){
$product_id = $product->get_id();
$product_price = get_post_meta( $product_id, \'_phive_book_price\', true );
$deposit_price = $product_price / 2;
if( ! empty( $deposit_price ) ) {
return wc_price( $product_price * $quantity ) . \' <i>Deposit: \' . wc_price( $deposit_price * $quantity ) . \'</i>\';
}
return wc_price( $product_price * $quantity );
}
add_filter( \'woocommerce_cart_product_subtotal\', \'filter_woocommerce_cart_product_subtotal\', 10, 3 );
感谢您的帮助!