无法在前端集成安全存款插件中的字段

时间:2018-01-20 04:29:54

标签: php wordpress woocommerce integration

我无法将WooCommerce Security Deposits插件(https://codecanyon.net/item/woocommerce-security-deposits-wordpress-plugin/19988389)中的某些输入字段集成到我网站的前端。

我尝试将字段输入WC Vendors Pro产品编辑表单,以便我网站上的用户可以调整其保证金值等。

我对安全存款有以下输入,并通过第二个代码块中的函数将其保存到产品元数据中。

<?php woocommerce_wp_checkbox( array(
                        'id' => '_wc_security_deposits_enable' ,
                        'label' => __( 'Collect security deposit' , 'woocommerce-security-deposits' ) ,
                        'description' => __( 'Enable this to collect a security deposit for this product' , 'woocommerce-security-deposits' ) ,
                        'desc_tip' => true ) );
                    ?>

这是功能:

public function process_product_meta( $post_id ){
        $product = wc_get_product( $post_id );

        $enable_security_deposit = isset( $_POST[ '_wc_security_deposits_enable' ] ) ? 'yes' : 'no';

        $amount_type = ( isset( $_POST[ '_wc_security_deposits_amount_type' ] ) &&
            ( $_POST[ '_wc_security_deposits_amount_type' ] === 'fixed' ||
                $_POST[ '_wc_security_deposits_amount_type' ] === 'percent' ) ) ?
            $_POST[ '_wc_security_deposits_amount_type' ] : 'fixed';

        $amount = isset( $_POST[ '_wc_security_deposits_deposit_amount' ] ) &&
        is_numeric( $_POST[ '_wc_security_deposits_deposit_amount' ] ) ? floatval( $_POST[ '_wc_security_deposits_deposit_amount' ] ) : 0.0;

        if( $amount <= 0 ){
            $enable_security_deposit = 'no';
            $amount = '';
        }

        $multiply_by_persons = isset( $_POST[ '_wc_security_deposits_multiply_per_persons' ] ) ? 'yes' : 'no';
        $multiply_by_quantity = isset( $_POST[ '_wc_security_deposits_multiply_by_quantity' ] ) ? 'yes' : 'no';

        $product->update_meta_data( '_wc_security_deposits_enable' , $enable_security_deposit );
        $product->update_meta_data( '_wc_security_deposits_multiply_by_quantity' , $multiply_by_quantity );
        $product->update_meta_data( '_wc_security_deposits_amount_type' , $amount_type );
        $product->update_meta_data( '_wc_security_deposits_deposit_amount' , $amount );

        if( $product->is_type( 'booking' ) && $product->has_persons() ){
            $product->update_meta_data( '_wc_security_deposits_multiply_per_persons' , $multiply_by_persons );
        }
        $product->save();

    }

我尝试在WP Vendors插件的单独页面中创建一个字段,该插件模仿启用安全存款的复选框,但是我显然无法使其坚持产品元数据 - 它只是视觉和做功能不正常。

非常感谢任何帮助,我不是PHP程序员,并且长期以来一直坚持这个问题。

非常感谢

0 个答案:

没有答案