OK、私は解決策自分で作ってみた:私は、ステートメントが#パネル課金-見出しを無効にし、あなたのコードの一部の周りに「場合」を追加しました。それはかなりではありませんが、私が欲しいものをやっていて、すばらしく働いています。
<?php
if (!is_user_logged_in()): ?>
<script>
jQuery("#panel-delivery-heading").removeAttr("href").css({
'backgroundColor' : '#EEE',
'color' : '#ddd',
'border' : '1px solid #ddd',
'cursor' : 'default'
})
jQuery("#panel-billing-heading").removeAttr("href").css({
'backgroundColor' : '#EEE',
'color' : '#ddd',
'border' : '1px solid #ddd',
'cursor' : 'default'
})
jQuery("#checkout-accordion-billing").css({
'display' : 'none'
})
jQuery("#panel-payment-heading").removeAttr("href").css({
'background-color' : '#EEE',
'color' : '#ddd',
'border' : '1px solid #ddd',
'cursor' : 'default'
})
jQuery("#place_order").prop("disabled", true).css({
'background-color' : '#f4bbda',
'color' : '#f9e0ee',
'cursor' : 'default'
})
jQuery("#checkout-accordion-payment").css({
'display' : 'none'
})
jQuery("#checkout-accordion-delivery").css({
'display' : 'none'
})
//after delivery is shown, add href
jQuery('#collapse-billing').on('show.bs.collapse', function() {
jQuery("#panel-billing-heading").attr("href", "#collapse-billing").removeClass("collapsed").css({
'background-color' : '#fff',
'color' : '#000',
'border' : '0px',
'cursor' : 'pointer'
})
})
jQuery('#collapse-delivery').on('show.bs.collapse', function() {
jQuery("#panel-delivery-heading").attr("href", "#collapse-delivery").removeClass("collapsed").css({
'background-color' : '#fff',
'color' : '#000',
'border' : '0px',
'cursor' : 'pointer'
})
})
//after delivery is shown, add href
jQuery('#collapse-delivery').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-delivery").css({
'display' : 'block'
})
})
//after payment is shown, add href
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#panel-payment-heading").attr("href", "#collapse-payment").removeClass("collapsed").css({
'background-color' : '#fff',
'color' : '#000',
'border' : '0px',
'cursor' : 'pointer'
})
})
//after delivery is shown, add href
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-payment").css({
'display' : 'block'
})
})
jQuery('#collapse-billing').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-billing").css({
'display' : 'block'
})
})
//after delivery is shown, add href
jQuery('#collapse-billing').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-billing").css({
'display' : 'block'
})
})
//after payment is shown, enable Place Order button
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#place_order").prop("disabled", false).css({
'background-color' : '#F683C2',
'color' : '#fff',
'cursor' : 'pointer'
})
})
</script>
<?php else: ?>
<script>
jQuery("#panel-delivery-heading").removeAttr("href").css({
'backgroundColor' : '#EEE',
'color' : '#ddd',
'border' : '1px solid #ddd',
'cursor' : 'default'
})
jQuery("#panel-billing-heading").removeClass("collapsed");
jQuery("#collapse-billing").addClass("in");
jQuery("#panel-payment-heading").removeAttr("href").css({
'background-color' : '#EEE',
'color' : '#ddd',
'border' : '1px solid #ddd',
'cursor' : 'default'
})
jQuery("#place_order").prop("disabled", true).css({
'background-color' : '#f4bbda',
'color' : '#f9e0ee',
'cursor' : 'default'
})
jQuery("#checkout-accordion-payment").css({
'display' : 'none'
})
jQuery("#checkout-accordion-delivery").css({
'display' : 'none'
})
jQuery("#panel-billing").css({
'margin-top' : '10px'
})
jQuery('#collapse-delivery').on('show.bs.collapse', function() {
jQuery("#panel-delivery-heading").attr("href", "#collapse-delivery").removeClass("collapsed").css({
'background-color' : '#fff',
'color' : '#000',
'border' : '0px',
'cursor' : 'pointer'
})
})
//after delivery is shown, add href
jQuery('#collapse-delivery').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-delivery").css({
'display' : 'block'
})
})
//after payment is shown, add href
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#panel-payment-heading").attr("href", "#collapse-payment").removeClass("collapsed").css({
'background-color' : '#fff',
'color' : '#000',
'border' : '0px',
'cursor' : 'pointer'
})
})
//after delivery is shown, add href
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-payment").css({
'display' : 'block'
})
})
jQuery('#collapse-billing').on('show.bs.collapse', function() {
jQuery("#checkout-accordion-billing").css({
'display' : 'block'
})
})
//after payment is shown, enable Place Order button
jQuery('#collapse-payment').on('show.bs.collapse', function() {
jQuery("#place_order").prop("disabled", false).css({
'background-color' : '#F683C2',
'color' : '#fff',
'cursor' : 'pointer'
})
})
</script>
<?php endif ?>
私はPHP if + elseステートメントを使用して終了しました。基本的に、ログインしていない場合は、パネル#2を無効にしてください。ログインしている場合は有効にして、アコーディオンパネルを切り替えます。デバッグモードではエラーは発生しません。
他人にも役立つことを願っています。
うーん、うまく動作していないようです。とにかく、 'background-color:#fff'、' color:#2d2d2d'、 'border:none'、' cursor:pointer'の代わりに、 '#panel-billing-heading'要素にこれらのスタイルを設定します。私はattrを取り除く元のスニペットと競合するかもしれないと思います。だから私はおそらく 'else'ステートメントを使うことができます。コードをどのように更新すればよいですか? – Dot123