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