php [约会] - 额外的字段费用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php [约会] - 额外的字段费用相关的知识,希望对你有一定的参考价值。
<?php
/*
Plugin Name: [Appointments] - Additional Fields Cost
Plugin URI: https://premium.wpmudev.org/
Description: Additional Fields add cost to Appointment
Author: Panos Lyrakis @ WPMUDEV
Author URI: https://premium.wpmudev.org/
License: GPLv2 or later
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'WPMUDEV_App_Additional_Fields_Cost' ) ) {
class WPMUDEV_App_Additional_Fields_Cost {
private static $_instance = null;
private $additional_price;
private $currency;
private $field;
public static function get_instance() {
if( is_null( self::$_instance ) ) {
self::$_instance = new WPMUDEV_App_Additional_Fields_Cost();
}
return self::$_instance;
}
public function __construct() {
add_action( 'init', array( $this, 'init_vars' ) );
add_action( 'wp_footer', array( $this, 'js_add_cost' ) );
add_filter( 'app_post_confirmation_price', array( $this, 'paypal_price' ) );
add_filter( 'app_post_confirmation_paypal_price', array( $this, 'paypal_price' ) );
}
public function init_vars () {
$this->additional_price = 10;
$this->field = 'coffee';
$this->currency = appointments_get_option( 'currency' );
}
public function paypal_price( $price ) {
$additional_fields = isset( $_POST['additional_fields'] ) ? $_POST['additional_fields'] : array();
if( isset( $additional_fields[ $this->field ] ) ){
$price += $this->additional_price;
}
return $price;
}
public function js_add_cost() {
?>
<script type="text/javascript">
(function($) {
$(document).ready(function() {
var field = $( '.appointments-<?php echo $this->field; ?>-field-entry' );
field.on( 'change', function() {
let price_holder = $( '.appointments-confirmation-price' ),
additional_price = '<?php echo $this->additional_price; ?>',
currency = '<?php echo $this->currency; ?>',
new_price_str = $( '<div />', {
'class' : 'appointments-additional-price'
});
if ( this.checked ) {
new_price_str.html( '<label><span>Additional price</span>'+ additional_price +' ' + currency + '</label>' );
price_holder.after( new_price_str );
}
else {
$( '.appointments-additional-price' ).fadeOut( 400, function(){ $(this).remove(); } );
}
});
});
})(jQuery);
</script>
<?php
}
}
add_action( 'plugins_loaded', function(){
$GLOBALS['WPMUDEV_App_Additional_Fields_Cost'] = WPMUDEV_App_Additional_Fields_Cost::get_instance();
}, 10 );
}
以上是关于php [约会] - 额外的字段费用的主要内容,如果未能解决你的问题,请参考以下文章
woocommerce 中每个类别的额外费用
php [约会+] - 在确认页面中强制配置文件字段为空
php [约会] - 其他自定义字段演示。有关如何在Appointments Lite中添加自定义字段的指南
添加一个结帐复选框字段,在 Woocommerce 中启用百分比费用
BZOJ 1834--网络扩容(最大流&费用流)
php [订阅]与巴西WooCommerce额外结帐字段的兼容性