Php 万商集团–;如果结帐时购物车中有两个产品标识之一,请添加表单字段并显示/隐藏div

Php 万商集团–;如果结帐时购物车中有两个产品标识之一,请添加表单字段并显示/隐藏div,php,wordpress,woocommerce,checkout,Php,Wordpress,Woocommerce,Checkout,差不多就是这样。我的php fu仍然很弱,而且我对woocommerce还是相当陌生的 我需要创建一个脚本,在结帐页面上检查购物车中的两个特定产品ID中的一个,如果有,则添加一个“paypal电子邮件地址”文本字段和一个“接收新闻稿?”复选框,并将我在“form shipping.php”模板中创建的一个div与另一个隐藏的div交换 令人惊讶的是,到目前为止,我的研究还没有在结帐页面上成功确认购物车中匹配的产品ID,这似乎是一个相当普遍的需求。在这一点上,我认为这是一个巨大的胜利。 任何关于实

差不多就是这样。我的php fu仍然很弱,而且我对woocommerce还是相当陌生的

我需要创建一个脚本,在结帐页面上检查购物车中的两个特定产品ID中的一个,如果有,则添加一个“paypal电子邮件地址”文本字段和一个“接收新闻稿?”复选框,并将我在“form shipping.php”模板中创建的一个div与另一个隐藏的div交换

令人惊讶的是,到目前为止,我的研究还没有在结帐页面上成功确认购物车中匹配的产品ID,这似乎是一个相当普遍的需求。在这一点上,我认为这是一个巨大的胜利。 任何关于实现这一目标的建议、指导或线索都将不胜感激

以下是我一直在使用的代码,试图从中进行调整:


第一个新手动作,我甚至无法定义这两个产品的功能(aym_是_cart_17563中的_conditional_product_,等等)。其次,我为Wordpress错误地调用了JQuery。第三,我在add_动作中使用了错误的钩子。第四,我最初发布这整件事是过早和匆忙的。我给我的家人带来了耻辱。以下代码按预期工作。希望它能帮助有类似问题的人

//AMBASSADOR CUSTOM CHECKOUT FIELDS, CONTENT
add_action( 'woocommerce_after_checkout_billing_form', 'aym_custom_checkout_field' );

function aym_custom_checkout_field( $checkout ) {

     //Check if Product in Cart
     $prod_in_cart_17563 = aym_is_conditional_product_in_cart_17563( 17563 );
     $prod_in_cart_17558 = aym_is_conditional_product_in_cart_17558( 17558 );

     if ( $prod_in_cart_17563 === true || $prod_in_cart_17558 === true ) {


        //Prod is in cart so hide div
        echo '<script type="text/javascript">

        jQuery(function($) { 
            $( window ).load(function(){
                console.log( "hidden!" );
                $(".check-promo-content").css("display", "none");
            });
        });

        </script>';

        echo '<script type="text/javascript">
        jQuery(function($) {
            console.log( "shown!" );
            $(".checkout_promo_aff_content").css("display", "block");
        });</script>';

         //and add additional fields
         echo '<div id="email_paypal"><h3>' . __( 'Paypal Email Address' ) . '</h3><p style="margin: 0 0 8px;">Please enter the email address you use for Paypal</p>';

         woocommerce_form_field( 'pp_email_textbox', array(
         'type'  => 'text',
         'class' => array( 'paypal-email form-row-wide' ),
         'label' => __( 'Paypal Email Address' ),
         ), $checkout->get_value( 'pp_email_textbox' ) );


         echo '<h3>' . __( 'Ambassador Terms and Conditions' ) . '</h3><p style="margin: 0 0 8px;">Please accept the <a href="http://www.acceleratingyoungminds.com/ambassador-terms-conditions/">Ambassador Terms and Conditions</a></p>';

         woocommerce_form_field( 'amb_terms_checkbox', array(
         'type'  => 'checkbox',
         'class' => array( 'amb_terms-checkbox form-row-wide' ),
         'label' => __( 'I accept Ambassador terms and Conditions' ),
         ), $checkout->get_value( 'amb_terms_checkbox' ) );


         echo '<h3>' . __( 'Subscribe for Ambassador Mailing List' ) . '</h3><p style="margin: 0 0 8px;">Would you like to subscribe for welcome emails and important information?</p>';

         woocommerce_form_field( 'amb_sub_checkbox', array(
         'type'  => 'checkbox',
         'class' => array( 'amb_sub_checkbox form-row-wide' ),
         'label' => __( 'I would like to subscribe to the Ambassador Newsletter' ),
         ), $checkout->get_value( 'amb_sub_checkbox' ) );

         echo '</div>';
     }

}
//TEAM LEADER BUNDLE
function aym_is_conditional_product_in_cart_17558( $product_id ) {
     //Check to see if user has product in cart
     global $woocommerce;

     //flag no product in cart
     $prod_in_cart_17558 = false;

     foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
         $_product = $values['data'];

         if ( $_product->id === $product_id ) {
             //product is in cart!
             $prod_in_cart_17558 = true;

         }
     }

     return $prod_in_cart_17558; 
}
//AMBSSADOR BUNDLE
function aym_is_conditional_product_in_cart_17563( $product_id ) {
 //Check to see if user has product in cart
 global $woocommerce;

 //flag no product in cart
 $prod_in_cart_17563 = false;

 foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
     $_product = $values['data'];

     if ( $_product->id === $product_id ) {
         //product is in cart!
         $prod_in_cart_17563 = true;

     }
 }

 return $prod_in_cart_17563;
//自定义签出字段、内容
添加\操作('WOOMerce\在\结帐\账单\表单之后,'aym\自定义\结帐\字段');
函数aym_自定义_签出_字段($checkout){
//检查产品是否在购物车中
$prod_in_cart_17563=aym_是_cart_17563中的条件产品(17563);
$prod_in_cart_17558=aym_是_cart_17558中的条件产品(17558);
if($prod_in_cart_17563==true | |$prod_in_cart_17558==true){
//产品在购物车中,所以隐藏div
回声'
jQuery(函数($){
$(窗口)。加载(函数(){
console.log(“隐藏!”);
$(“.check promo content”).css(“显示”、“无”);
});
});
';
回声'
jQuery(函数($){
console.log(“显示!”);
$(“.checkout\u promo\u aff\u content”).css(“显示”、“块”);
});';
//并添加其他字段
回显“”。uuuu('Paypal电子邮件地址')。

请输入您用于Paypal的电子邮件地址; woocommerce\u表单\u字段('pp\u email\u textbox',数组( '类型'=>'文本', 'class'=>数组('paypal电子邮件表单行范围'), 'label'=>\('Paypal电子邮件地址'), ),$checkout->get_value('pp_email_textbox'); 回音“”。(“大使条款与条件”)。

请接受此回音; woocommerce\u表单\u字段('amb\u术语\u复选框',数组( '键入'=>'复选框', 'class'=>array('amb_terms-checkbox form row-wide'), “标签”=>(我接受大使条款和条件), ),$checkout->get_value('amb_terms_checkbox'); 回显“”。(“订阅大使邮件列表”)。

; 表单字段('amb\U sub\U复选框',数组( '键入'=>'复选框', 'class'=>数组('amb\u sub\u复选框形成行宽'), “标签”=>(我想订阅大使通讯), ),$checkout->get_value('amb_sub_checkbox'); 回声'; } } //队长包 函数aym_是购物车17558中的有条件产品($product_id){ //检查用户购物车中是否有产品 全球商业; //标记购物车中没有产品 $prod_in_cart_17558=假; foreach($woocommerce->cart->get\u cart()作为$cart\u item\u key=>$value){ $_product=$values['data']; 如果($\u产品->id===$product\u id){ //产品在购物车中! $prod_in_cart_17558=真; } } 返回$prod_(在_cart_17558中); } //AMBSSADOR束 函数aym_是购物车17563中的有条件产品($product_id){ //检查用户购物车中是否有产品 全球商业; //标记购物车中没有产品 $prod_in_cart_17563=假; foreach($woocommerce->cart->get\u cart()作为$cart\u item\u key=>$value){ $_product=$values['data']; 如果($\u产品->id===$product\u id){ //产品在购物车中! $prod_in_cart_17563=真; } } 在购物车17563中返回$prod_;


请“编写/调试我的代码”、“为我推荐/搜索”、“教程”请求和“低工作量”、“不清楚”、“基于意见”、“与编程无关”问题是。好的问题,如中所述,需要进行研究,清楚地解释问题,并应包括。woocommerce的哪个版本?版本2.6.14,但当然我们必须很快升级。使用尚未升级到3.0的高级主题。
//AMBASSADOR CUSTOM CHECKOUT FIELDS, CONTENT
add_action( 'woocommerce_after_checkout_billing_form', 'aym_custom_checkout_field' );

function aym_custom_checkout_field( $checkout ) {

     //Check if Product in Cart
     $prod_in_cart_17563 = aym_is_conditional_product_in_cart_17563( 17563 );
     $prod_in_cart_17558 = aym_is_conditional_product_in_cart_17558( 17558 );

     if ( $prod_in_cart_17563 === true || $prod_in_cart_17558 === true ) {


        //Prod is in cart so hide div
        echo '<script type="text/javascript">

        jQuery(function($) { 
            $( window ).load(function(){
                console.log( "hidden!" );
                $(".check-promo-content").css("display", "none");
            });
        });

        </script>';

        echo '<script type="text/javascript">
        jQuery(function($) {
            console.log( "shown!" );
            $(".checkout_promo_aff_content").css("display", "block");
        });</script>';

         //and add additional fields
         echo '<div id="email_paypal"><h3>' . __( 'Paypal Email Address' ) . '</h3><p style="margin: 0 0 8px;">Please enter the email address you use for Paypal</p>';

         woocommerce_form_field( 'pp_email_textbox', array(
         'type'  => 'text',
         'class' => array( 'paypal-email form-row-wide' ),
         'label' => __( 'Paypal Email Address' ),
         ), $checkout->get_value( 'pp_email_textbox' ) );


         echo '<h3>' . __( 'Ambassador Terms and Conditions' ) . '</h3><p style="margin: 0 0 8px;">Please accept the <a href="http://www.acceleratingyoungminds.com/ambassador-terms-conditions/">Ambassador Terms and Conditions</a></p>';

         woocommerce_form_field( 'amb_terms_checkbox', array(
         'type'  => 'checkbox',
         'class' => array( 'amb_terms-checkbox form-row-wide' ),
         'label' => __( 'I accept Ambassador terms and Conditions' ),
         ), $checkout->get_value( 'amb_terms_checkbox' ) );


         echo '<h3>' . __( 'Subscribe for Ambassador Mailing List' ) . '</h3><p style="margin: 0 0 8px;">Would you like to subscribe for welcome emails and important information?</p>';

         woocommerce_form_field( 'amb_sub_checkbox', array(
         'type'  => 'checkbox',
         'class' => array( 'amb_sub_checkbox form-row-wide' ),
         'label' => __( 'I would like to subscribe to the Ambassador Newsletter' ),
         ), $checkout->get_value( 'amb_sub_checkbox' ) );

         echo '</div>';
     }

}
//TEAM LEADER BUNDLE
function aym_is_conditional_product_in_cart_17558( $product_id ) {
     //Check to see if user has product in cart
     global $woocommerce;

     //flag no product in cart
     $prod_in_cart_17558 = false;

     foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
         $_product = $values['data'];

         if ( $_product->id === $product_id ) {
             //product is in cart!
             $prod_in_cart_17558 = true;

         }
     }

     return $prod_in_cart_17558; 
}
//AMBSSADOR BUNDLE
function aym_is_conditional_product_in_cart_17563( $product_id ) {
 //Check to see if user has product in cart
 global $woocommerce;

 //flag no product in cart
 $prod_in_cart_17563 = false;

 foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
     $_product = $values['data'];

     if ( $_product->id === $product_id ) {
         //product is in cart!
         $prod_in_cart_17563 = true;

     }
 }

 return $prod_in_cart_17563;